floyd.m

来自「Matlab写的求最短路径的程序!欢迎大家使用!」· M 代码 · 共 26 行

M
26
字号
function [result]=floyd(DATA)     %Floyd法

D=[];   %中间结果矩阵
DD=[];  %中转矩阵
[row rank]=size(DATA);

for i=1:row          %数据初始化
    for j=1:row
        for k=1:row
            D(i,j,k)=0;
        end
    end
end

DD=DATA;
for k=1:row  %控制层数
    for i=1:row   %控制行
      for j=1:row %控制列
      m=min(DD(i,j),DD(i,k)+DD(k,j));
      D(i,j,k)=m;    
      end        
    end
    DD=D(:,:,k);
end

result=D(:,:,row);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?