这里给你个floyd算法的代码。
clear; , W( P5 T; p; o" H1 m+ S clc;
%========================================================================== %输入你的对称矩阵 %==========================================================================
n=input('message') w=zeros(n);% g5 B, j; f0 c5 ~; z w=[]; % 只需输一半,另一半用转置即可 w=w+w';
M=10000000; %M 表示无限大
for i=1:n! G D) @" ?5 ]9 a0 [; } for j=1:n if w(i,j)==0 & i~=j w(i,j)=M; end+ E) N- C% \+ n0 l& A3 u end end/ N- D- y' c9 E" U! |. I path=zeros(length(w));
for k=1:n
for i=1:n
for j=1:n
if w(i,j)>w(i,k)+w(k,j)
w(i,j)=w(i,k)+w(k,j);
path(i,j)=k;
end
end
end
end
w, path
你也可以参考: http://mathserver.sdu.edu.cn/html/sxjm/texts/chapter5/5_3.htm
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |