|
这里给你个floyd算法的代码。 clear; # m9 [7 S' ` [9 d2 E& f I" X
clc; %==========================================================================
_1 _6 l" h+ D. d Q( X4 [; h- J %输入你的对称矩阵; f ~* M i2 ]6 }' R* f
%========================================================================== n=input('message')" O8 b$ @4 t# H
w=zeros(n);2 ^8 {& e" E3 e
w=[]; % 只需输一半,另一半用转置即可7 j0 z# q; N( r+ U4 P V
w=w+w'; M=10000000; %M 表示无限大 for i=1:n% [; U4 L' g+ D. l9 i+ f" a; [/ N
for j=1:n
W7 q$ K/ e8 ~ if w(i,j)==0 & i~=j7 F+ e3 \. z1 k7 @4 |
w(i,j)=M;
- `' S* q0 W. ]- d end. D [* n4 y$ F- [
end
# D& d+ n7 b+ v3 jend
$ L& X/ Y5 e( x2 H1 d+ R 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 |