Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 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 当前离线   回复时引用此帖
旧 2009-04-10, 10:12   #2
yhcode
高级会员
 
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21
yhcode 正向着好的方向发展
默认

把错误行的function去除就可以了
__________________
工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755
yhcode 当前离线   回复时引用此帖
旧 2009-04-10, 14:05   #3
lgzh2ld
初级会员
 
注册日期: 2009-04-09
帖子: 6
声望力: 0
lgzh2ld 正向着好的方向发展
默认

我是想将PATH这个函数嵌套到SHORTESTPATH 这个函数里面的,去除FUNCTION命令就不完整了
lgzh2ld 当前离线   回复时引用此帖
旧 2009-04-10, 15:43   #4
yhcode
高级会员
 
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21
yhcode 正向着好的方向发展
默认

不会吧,你的这个PATH函数是MATLAB里的还是你自己编的M函数?无论是哪种情况,调用的时候都不用写function前缀呀,只有在该函数的原始实现也就是函数定义里才可以用function,定义好的函数直接调用就可以了,不用加function
__________________
工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755
yhcode 当前离线   回复时引用此帖
旧 2009-04-10, 16:37   #5
lgzh2ld
初级会员
 
注册日期: 2009-04-09
帖子: 6
声望力: 0
lgzh2ld 正向着好的方向发展
默认

谢谢了,可以运行了,虽然还是没有输出我想要的结果,你说的是对的,谢谢哈
lgzh2ld 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:46


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.