floyd算法matlab
时间: 2023-10-16 07:15:23 浏览: 108
Floyd算法_floyd最短路算法_matlab
5星 · 资源好评率100%
以下是Floyd算法的Matlab代码实现:
```matlab
function [D] = floyd(W)
% Floyd算法计算图中任意两点间的最短路径
% 输入参数:W-邻接矩阵,W(i,j)=0表示i,j不连通,W(i,j)=d表示i,j连通,边权为d
% 输出参数:D-任意两点间的最短距离矩阵
n = size(W, 1);
D = W; % 初始化距离矩阵
for k = 1:n
for i = 1:n
for j = 1:n
if D(i,k) + D(k,j) < D(i,j) % 若经过中间点k可以缩短距离,则更新距离矩阵
D(i,j) = D(i,k) + D(k,j);
end
end
end
end
```
其中,邻接矩阵W(i,j)表示节点i到节点j的距离,若i,j不连通,则W(i,j)=0;若i,j连通,则W(i,j)为边权值。函数返回的矩阵D(i,j)表示节点i到节点j的最短距离。
阅读全文