声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3827|回复: 11

[综合讨论] Function '>' is not defined for values of class 'sym'?

[复制链接]
发表于 2009-5-12 00:07 | 显示全部楼层 |阅读模式

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

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

x
运行程序后出现
??? Error using ==> >
Function '>' is not defined for values of class 'sym'.
是什么问题?要怎么改?难道用于比较的大于号不是'>'?
谢谢!

[ 本帖最后由 ChaChing 于 2009-5-12 16:18 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-5-12 08:05 | 显示全部楼层
建议楼主看下本版规则! 给齐完整格式:出错代码和出错提示!
 楼主| 发表于 2009-5-12 15:21 | 显示全部楼层

回复 沙发 ChaChing 的帖子

??? Error using ==> >
Function '>' is not defined for values of class 'sym'.

Error in ==> D:\matlab\work\Ta.m
On line 175  ==>      if L>12

出错提示就是这样的 我的程序太长了,不然就把程序贴出来了,帮我看看怎么回事,谢谢
 楼主| 发表于 2009-5-12 15:51 | 显示全部楼层

回复 沙发 ChaChing 的帖子

我重新编了一段简单些的程序,只不过简化了L1,L2,L3的算法,实际程序中L1,L2,L3的算法复杂的多。
x=input('输入水进口温度(7-15度):');
while x>15|x<7
  x=input('输入量不在指定范围内,请重新输入(7-15度):');
end

L=0;i=0;j=0;tk=x;m=0;L1=0;L2=0;L3=0;
while L>12|L<11.5
     L1=9/tk;L2=2;L3=7; L=L1+L2+L3;
     if L>12
         i=i+1;
         if i*j==0, tk=tk+5;
         else m=m+1; tk=tk+5/2^m;
         end
     elseif L<11.5
         j=j+1;
         if i*j==0, tk=tk-5;
         else m=m+1; tk=tk-5/2^m;
         end
     end
end
disp('tk=');disp(tk)

为什么这里的if L>12没有提示出错?而实际程序里后面的这一段是一样的,却总提示
??? Error using ==> >
Function '>' is not defined for values of class 'sym'.

Error in ==> D:\matlab\work\Ta.m
On line 175  ==>      if L>12

另外,为什么以上这段程序贴到命令窗口可以正常运行,但是直接用M文件RUN就提示
Empty state-space model.

[ 本帖最后由 ChaChing 于 2009-5-12 20:52 编辑 ]
发表于 2009-5-12 15:52 | 显示全部楼层
在M文件里也可以运行:
输入水进口温度(7-15度):8
tk=
     3

[ 本帖最后由 friendchj 于 2009-5-12 15:56 编辑 ]
 楼主| 发表于 2009-5-12 15:58 | 显示全部楼层

回复 6楼 friendchj 的帖子

你好!能说的详细些么?那我要怎么改呢?
发表于 2009-5-12 16:05 | 显示全部楼层

回复 7楼 shuigongtianlan 的帖子

你检查一下出错时变量L的类型

评分

1

查看全部评分

 楼主| 发表于 2009-5-12 16:32 | 显示全部楼层

回复 7楼 friendchj 的帖子

我整个程序里没用到符号变量啊,定义的都是数值变量。
还有,我贴的程序为什么我不能用M文件运行,昨天还行的 今天就提示
>> Empty state-space model.
发表于 2009-5-12 17:00 | 显示全部楼层

回复 8楼 shuigongtianlan 的帖子

看看你的M文件名是否和matlab自带的函数名重复。
发表于 2009-5-12 17:02 | 显示全部楼层
刚运行了一下LZ贴出的程序,发现没有错误。。。
输入水进口温度(7-15度):10
tk=
    3.1250

不过看了LZ的程序,发现L1的值应该是9/tk(tk=x),因而应该是0.9,可matlab运行出的结果却是2.9508,整个程序L1只有一次赋值,很让人费解。。难道是偶没看懂程序???
而且当输入的x=9时,程序一直算不出结果,可能陷入死循环了。。

[ 本帖最后由 maigicku 于 2009-5-12 17:05 编辑 ]
发表于 2009-5-12 17:33 | 显示全部楼层

回复 10楼 maigicku 的帖子

楼主的L1是在while循环中的,只要L满足L>12|L<11.5,就不会跳出循环。
发表于 2009-5-12 18:38 | 显示全部楼层

回复 11楼 friendchj 的帖子

感谢LS指点。。。。弄懂了LZ的程序。。
不过当x=9时,L是逐渐递减的,除非收敛,要不然永远循环下去。。LZ的程序有弊端啊。。

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-19 04:27 , Processed in 0.084580 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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