声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1059|回复: 2

[综合讨论] 这个程序为何总是提示vx没有定义呢??

[复制链接]
发表于 2010-4-23 12:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function [d,r1]=floyd1(vx,vy)
b=inf;
a=[0 2 8 1 b b b b
       2 0 6 b 1 b b b
       8 6 0 7 5 1 2 b
       1 b 7 0 b b 9 b
       b 1 5 b 0 3 b 8
       b b 1 b 3 0 4 6
       b b 2 9 b 4 0 3
       b b b b 8 6 3 0 ];
d=a;
vx=vx+1;
vy=vy+1;
global r;
r=a;
for i=1:8
       for j=1:8
           d(i,j)=a(i,j);
           r(i,j)=j;
           k=1;
       end
end
for k=1:8
for i=1:8
       for j=1:8
           if d(i,k)+d(k,j)<d(i,j)
               d(i,j)=d(i,k)+d(k,j);
               r(i,j)=k;
           end
        
           end
end
end
r1=r-1;
fun3(vx,vy);
%fun3.m文件
function fun3(vx,vy)
global r;
t=r(vx,vy);
if vy==t
      return
else
       fun3(vx,t);
       disp(t-1);
       fun3(t,vy);
end
回复
分享到:

使用道具 举报

发表于 2010-4-25 09:46 | 显示全部楼层
这是函数文件,不能直接运行,需要对函数预先赋值,可以在窗口这样调用:
[d,r1]=myfun(1,2)

评分

1

查看全部评分

发表于 2010-4-25 12:28 | 显示全部楼层
建议楼主多看些精华帖, 如
matlab矢量化编程技巧集锦
http://forum.vibunion.com/forum/ ... 1583&highlight=


for i=1:8, for j=1:8, d(i,j)=a(i,j); r(i,j)=j; k=1; end; end
根本有些多馀, 前头不是已经d=a了
d=a;
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-29 14:23 , Processed in 0.065723 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表