floyd算法用matlab求出d和path之后怎么调用自己所需两点的最短距离及路径

 我来答
疯狂的贤者
2015-09-02 · TA获得超过641个赞
知道小有建树答主
回答量:343
采纳率:0%
帮助的人:538万
展开全部

这是一个我写的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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式