返回   MATLAB中国论坛|MATLAB爱好者之家—不仅仅是MATLAB! > 特色讨论区:工程数学软件-不仅仅是MATLAB! > MATLAB论坛 > MATLAB算法讨论




回复
 
LinkBack 主题工具 显示模式
旧 2010-04-29, 10:22 AM   #1
初级会员
 
注册日期: 2010-03-23
年龄: 30
帖子: 2
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
Shadowsong 正向着好的方向发展
默认 新手求助 赋值的变量比较大小时出错 非常感谢

for i=[1:n]
L(i)=sqrt(energy(i)*8/6.02e23/1.6e-19/E/E*M)*1e9 ;
z1(i)=floor(mid-0.5*L(i));
z2(i)=floor(mid+0.5*L(i));
temp=T>z1(i)&T<z2(i) ; %就是这条指令报错了 Function 'gt' is not implemented for MuPAD symbolic objects.

n,mid,E,M都是用户输入的值,energy与T是用户输入的数组,因此对于循环中的每一个i.z1(i)与z2(i)都是可求出的,为什么进行比较运算时还是认为z1(i),z2(i)是字母变量无法比较?
运行程序报错后,我输入z1(1),z2(1),都得到了一个正常的数字结果,输入T,也会显示一个正常的数组,问题应该出在比较的那一行上。

在此提前感谢大家的关注与帮助!

此帖于 2010-04-30 01:20 PM 被 Shadowsong 编辑。
Shadowsong 当前离线   回复时引用此帖
旧 2010-05-16, 05:15 PM   #2
初级会员
 
注册日期: 2010-04-07
住址: 西安
帖子: 1
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
myhonor 正向着好的方向发展
默认 回复: 新手求助 赋值的变量比较大小时出错 非常感谢

引用:
作者: Shadowsong 查看帖子
for i=[1:n]
L(i)=sqrt(energy(i)*8/6.02e23/1.6e-19/E/E*M)*1e9 ;
z1(i)=floor(mid-0.5*L(i));
z2(i)=floor(mid+0.5*L(i));
temp=T>z1(i)&T<z2(i) ; %就是这条指令报错了 Function 'gt' is not implemented for MuPAD symbolic objects.

n,mid,E,M都是用户输入的值,energy与T是用户输入的数组,因此对于循环中的每一个i.z1(i)与z2(i)都是可求出的,为什么进行比较运算时还是认为z1(i),z2(i)是字母变量无法比较?
运行程序报错后,我输入z1(1),z2(1),都得到了一个正常的数字结果,输入T,也会显示一个正常的数组,问题应该出在比较的那一行上。

在此提前感谢大家的关注与帮助!
temp=T>z1(i)&T<z2(i) ;
按你的说法,T是数组,怎么可以和标量比较呢?
myhonor 当前离线   回复时引用此帖
回复

书签

标签
matlab基础, 变量, 比较大小

主题工具
显示模式

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

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



所有时间均为北京时间。现在的时间是 01:30 AM


Powered by vBulletin
版权所有 ©2000 - 2018,Jelsoft Enterprises Ltd.
陕ICP备07001583号

SEO by vBSEO ©2009, Crawlability, Inc.