![]() |
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". 实在不知道如何修改,请求帮助 |
把错误行的function去除就可以了
|
我是想将PATH这个函数嵌套到SHORTESTPATH 这个函数里面的,去除FUNCTION命令就不完整了
|
不会吧,你的这个PATH函数是MATLAB里的还是你自己编的M函数?无论是哪种情况,调用的时候都不用写function前缀呀,只有在该函数的原始实现也就是函数定义里才可以用function,定义好的函数直接调用就可以了,不用加function
|
谢谢了,可以运行了,虽然还是没有输出我想要的结果,你说的是对的,谢谢哈
|
所有时间均为北京时间。现在的时间是 03:05。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.