这里给你个floyd算法的代码。
clear; clc;
%========================================================================== %输入你的对称矩阵8 r' M, ~0 B7 ` Z2 L3 { %==========================================================================
n=input('message') w=zeros(n); w=[]; % 只需输一半,另一半用转置即可 w=w+w';
M=10000000; %M 表示无限大
for i=1:n for j=1:n2 L0 t v5 i. t, e; W2 Y if w(i,j)==0 & i~=j w(i,j)=M; - A5 ~% Z/ a6 t. b6 B% I end end end 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 |