floyd算法用matlab求出d和path之后怎么调用自己所需两点的最短距离及路径
展开全部
这是一个我写的Floyd算法的程序。w是图的邻接矩阵需要事先输入并保存在工作空间中,调用方法为:[D,path]=floyd(w)。给出的结果D为路径的邻接矩阵,path为路径所经过的端点顺序。
程序为:
function [D,path]=floyd(w)
%D R a
n=size(w,1);
%设初值
D=w;
path=zeros(n);
for i=1:n
for j=1:n
if D(i,j)~=inf
path(i,j)=j;
end
end
end
%迭代,更新D path
for k=1:n
for i=1:n
for j=1:n
if D(i,k)+D(k,j)<D(i,j)
D(i,j)=D(i,k)+D(k,j);
path(i,j)=path(i,k);
end
end
end
end
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询