我对MATLAB很新,并且有一段代码可以创建一个距离矩阵。 更确切地说,它在位于无向图上的点之间创建距离矩阵D,使得Dij是该图上的点之间的最短路径。 这个矩阵显然是对称的(因为图是无向的),以下是我用来创建它的代码片段:
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?
任何帮助,赞赏,
贾森