你先试着执行函数主体部分吧,结果可能会让你有思路
a=[0,5,0,3,0,0,0,0,0;5,0,7,0,4,0,0,0,0;0,7,0,6,0,10,0,0,0;3,0,6,0,6,0,0,0,0;0,4,0,6,0,13,0,0,0;0,0,10,0,13,0,7,9,0;0,0,0,0,0,7,0,0,11;0,0,0,0,0,9,0,0,14;0,0,0,0,0,0,11,14,0];
% function [D,Node] = floyd( a )
n = size(a,1);
D = a; Node = zeros (n,n);
for i = 1 : n
for j = 1 : n
if D(i,j) ~= inf;
Node(i,j) = j;
end
end
end
for k = 1 : n
for i = 1 : n
for j = 1 : n
if D(j,k) + D(k,j) < D(i,j)
D(i,j) = D(j,k) + D(k,j);
Node(i,j) = Node(i,k);
end
end
end
end
D
Node