私はMATLABを初めて使用し、距離行列を作成するコードを持っています。より正確には、Dij がそのグラフ上の点間の最短経路となるように、無向グラフ上の点間の距離行列 D を作成します。この行列は明らかに対称的です (グラフは無向であるため)。次のコード スニペットを使用して作成します。
D = zeros(size(data,1));
for i = 1:size(data, 1)
for j = 1:size(data, 1)
[D(i, j), ~, ~] = graphshortestpath(G, i, j, 'Directed', false);
end
end
行列の対称性を利用していないため、これは明らかに非常に無駄です。行列の上三角部分のみを計算し、下三角部分を何とか「追加」して、計算を n^2 から n^2 / 2 に減らす方法はありますか?
どんな助けでも感謝します、
ジェイソン