声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2280|回复: 3

[编程技巧] 请教Undefined function or variable

[复制链接]
发表于 2009-6-8 15:06 | 显示全部楼层 |阅读模式

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

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

x
function中的一小段:

if dR(i)>1300
    fuzzydr=1;
    if dR(i)<-1300
        fuzzydr=-1;
    else
        fuzzydr=dR(i)/1300;
    end
end

if dq(i)>0.05
    fuzzydq=1;
    if dq(i)<-0.05
        fuzzydq=-1;
    else
        fuzzydq=dq(i)/0.05;
    end
end

am=evalfis([fuzzydr fuzzydq],ss);
函数中 if 定义的fuzzydr;fuzzydq在运行的时候 报错说


??? Undefined function or variable "fuzzydr".
Error in ==> rk_4fuzzy at 33
am=evalfis([fuzzydr fuzzydq],ss);           %模糊控制量

我觉得if中定义了,但是为什么还要我定义呢?或者是if中的变量定义无效?
请指教,谢谢

[ 本帖最后由 ChaChing 于 2009-6-8 21:19 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-6-8 15:27 | 显示全部楼层
只能说明if那条语句未被执行,导致fuzzydr未被定义。

评分

1

查看全部评分

 楼主| 发表于 2009-6-8 15:41 | 显示全部楼层
谢谢,但是我还想问问
关于。m文件 运行的顺序;
我的if判断在前面进行归一化处理,为什么不先执行?而是执行后面的程序?

[ 本帖最后由 older 于 2009-6-8 16:03 编辑 ]
发表于 2009-6-8 18:44 | 显示全部楼层
if dR(i)>1300
    fuzzydr=1;
    if dR(i)<-1300
        fuzzydr=-1;
    else
        fuzzydr=dR(i)/1300;
    end
end
逻辑有问题 大于1300 怎么可能再小于-1300

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-7-8 07:40 , Processed in 0.066888 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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