clc
clear
adj=[0 1 0 1;
1 0 1 0;
0 1 0 1;
1 0 1 0]; % 图的邻接矩阵
adj=sparse(adj);
[D,P]=all_shortest_paths(adj);
i = 4; % 起始节点索引
j = 2; % 目标节点索引
p=[];
while j~= 0
p(end+1) = j;
j=P(i,j);
end
这里需要用到BGL工具箱里的all_shortest_paths函数,有点可惜存在多条最短路径时,只能找出其中的一条路径。