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".
实在不知道如何修改,请求帮助