PDA

查看完整版本 : [MATLAB基础] 新手求助 赋值的变量比较大小时出错 非常感谢


Shadowsong
2010-04-29, 10:22
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,也会显示一个正常的数组,问题应该出在比较的那一行上。

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

myhonor
2010-05-16, 17:15
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是数组,怎么可以和标量比较呢?