得到最短路径和节点之间的距离没有循环(也可能是在一个更快的方式)

1视图(30天)
如何获得最短路径和节点之间的距离(从列表中选择)没有一个循环,并可能以更快的方式比下面的例子所示?
输入% 1(图)
s = [1 1 1 1 2 2 2 2 2 8 8 12 14 14 1 14];
t = [3 5 4 2 6 7 8 9 10 11 12 13 7 6 8 15);
图G = (s, t);
情节(G)
%输入2(节点列表,其中,最短路径和距离
%计算)
列表= [3 7 8 9 10 14];
%计算
抽搐
i = 1:长度(列表)
j = 1:长度(列表)
[p、d] = shortestpath (G,列表(我),(j));
nodes_path {i, j} = p;
nodes_distances {i, j} = d;
结束
结束
toc
运行时间是0.016856秒。
%输出
nodes_path,
nodes_path =6×6单元阵列
{[3]}{[3 1 2 7]}{[3 1 8]}{[3 1 2 9]}{[3 1 2 10]}{[3 1 2 6 14]}{[7 2 1 3]}{[7]}{[7 2 8]}{[7 2 9]}{[7 2 10]}{14 [7]}{[8 1 3]}{[8 2 7]}{[8]}{[8 2 9]}{[8 2 10]}{[8 2 6 14]}{[9 2 1 3]}{[9 2 7]}{[9 2 8]}{[9]}{[9 2 10]}{[9 2 6 14]}{[10 2 1 3]}{[10 2 7]}{[10 2 8]}{[10 2 9]}{[10]}{[10 2 6 14]}{[14 6 2 1 3]}{14 [7]}{[14 6 2 8]}{[14 6 2 9]}{[14 6 2 10]}{[14]}
nodes_distances,
nodes_distances =6×6单元阵列
{[0]}{[3]}{[2]}{[3]}{[3]}{[4]}{[3]}{[0]}{[2]}{[2]}{[2]}{[1]}{[2]}{[2]}{[0]}{[2]}{[2]}{[3]}{[3]}{[2]}{[2]}{[0]}{[2]}{[3]}{[3]}{[2]}{[2]}{[2]}{[0]}{[3]}{[4]}{[1]}{[3]}{[3]}{[3]}{[0]}

答案(1)

乔恩
乔恩 2022年12月16日
编辑:乔恩 2022年12月16日
为每一对节点之间的距离(最短路径)的图
d =距离(G)
一个子集,在你的列表
d =距离(G,列表,列表)
3评论

登录置评。

类别

找到更多的在图和网络算法帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!