2015-11-03 141 views
-5

如何确定是一个变量是大于或等于在MATLAB的值,我想:比较变量是大于/小于在Matlab

if (myVar >= '123.1') 
do mething here 
else 
do other thing 
end 

但似乎每次都做另一件事!

我在'123.1'上看到警告,很少说是否有比较功能?

+3

什么是'myVar'值... – excaza

+1

我不能重现你的错误。您的代码(按原样)是正确的,唯一可能的错误是@excaza建议的,以及myVar的值/类型;也许它是一个矢量/矩阵而不是单个值? – GameOfThrows

+0

emm ... myVar是一个字符,对不起,我忘了'' – lola

回答

1

比较字符逻辑上执行隐式类型转换之前比较(我假设使用double)。

所以,当你键入'123' >= '234'你实际上是执行:

[double('1') >= double('2'), ... % 49 >= 50 
double('2') >= double('3'), ... % 50 >= 51 
double('3') >= double('4') ... % 51 >= 52 
]; 

,如果你的字符串的长度不同这会报错。在输入逻辑语句之前,将数据转换为与str2doublestr2num之类的内容进行比较。

例如:

strvar = '123.2'; 

if str2double(strvar) >= 123.1 
    disp('True!') 
else 
    disp('False!') 
end 

有了适当的floating point approximation caveat