查看单个帖子
旧 2009-04-09, 22:30   #1
lgzh2ld
初级会员
 
注册日期: 2009-04-09
帖子: 6
声望力: 0
lgzh2ld 正向着好的方向发展
默认 matlab最短路径的输出问题,用了递归,但程序出错了,请大虾指点

程序如下
function shortestpath(w,p,q)
c='->';
l='';
f='';
t=size(w);
m=t(1,1);
a=zeros(m,m);
v=w;
for k=1:m
for i=1:m
for j=1:m
b=[w(i,j),w(i,k)+w(k,j)];
w(i,j)=min(b);
if w(i,j)~=v(i,j)
a(i,j)=k;
%a(i,j)=10*a(i,j)+k;
v=w;
end
end
end
end
w;
a;
y=a(p,q);
if x~=0
function path(x)
x=y;
if x~=0
path(a(p,x));
p=x;
x=num2str(x);
f=strcat(f,x);
f=strcat(f,c);
path(a(x,q));
end
end
p=num2str(p);
p=strcat(p,c);
f=strcat(p,f);
q=num2str(q);
f=strcat(f,q)
else
fprintf('%d->%d',p,q)
end


运行之后,出现了
>> shortestpath(w,1,2)
??? Error: File: E:\matlab\work\shortestpath.m Line: 26 Column: 4
Illegal use of reserved keyword "function".
实在不知道如何修改,请求帮助
lgzh2ld 当前离线   回复时引用此帖