shuigongtianlan 发表于 2009-5-12 00:07

Function '>' is not defined for values of class 'sym'?

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

[ 本帖最后由 ChaChing 于 2009-5-12 16:18 编辑 ]

ChaChing 发表于 2009-5-12 08:05

建议楼主看下本版规则! 给齐完整格式:出错代码和出错提示!

shuigongtianlan 发表于 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

出错提示就是这样的 我的程序太长了,不然就把程序贴出来了,帮我看看怎么回事,谢谢

shuigongtianlan 发表于 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 编辑 ]

friendchj 发表于 2009-5-12 15:52

在M文件里也可以运行:
输入水进口温度(7-15度):8
tk=
   3

[ 本帖最后由 friendchj 于 2009-5-12 15:56 编辑 ]

shuigongtianlan 发表于 2009-5-12 15:58

回复 6楼 friendchj 的帖子

你好!能说的详细些么?那我要怎么改呢?

friendchj 发表于 2009-5-12 16:05

回复 7楼 shuigongtianlan 的帖子

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

shuigongtianlan 发表于 2009-5-12 16:32

回复 7楼 friendchj 的帖子

我整个程序里没用到符号变量啊,定义的都是数值变量。
还有,我贴的程序为什么我不能用M文件运行,昨天还行的 今天就提示
>> Empty state-space model.

friendchj 发表于 2009-5-12 17:00

回复 8楼 shuigongtianlan 的帖子

看看你的M文件名是否和matlab自带的函数名重复。

maigicku 发表于 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 编辑 ]

friendchj 发表于 2009-5-12 17:33

回复 10楼 maigicku 的帖子

楼主的L1是在while循环中的,只要L满足L>12|L<11.5,就不会跳出循环。

maigicku 发表于 2009-5-12 18:38

回复 11楼 friendchj 的帖子

感谢LS指点。。。。弄懂了LZ的程序。。
不过当x=9时,L是逐渐递减的,除非收敛,要不然永远循环下去。。LZ的程序有弊端啊。。
页: [1]
查看完整版本: Function '>' is not defined for values of class 'sym'?