2010-12-02 50 views
5

即時得到在OS X上使用示例中MATLAB_R2009b ==提示符從一個非常奇怪的結果:怪異的結果使用``==操作符在MATLAB

s = 
    2 
>> class(s) 
ans = 
double 
>> class(s) == 'double' 
ans = 
    1  1  1  1  1  1 

六次是嗎?任何人都可以解釋這||提供解決方案?

回答

15

在Matlab中,字符串實際上只是字符數組。所以你真正在做的是比較兩個數組。這是按元素比較的,即逐個字符。所以,你可能

all(class(s) == 'double') 

但會給出一個運行時錯誤如果class(s)字符串長度不6.更安全是做:

strcmp(class(s), 'double') 

但你應該真的是:

isa(s, 'double') 
+0

他射門,他得分!!!! +1。 – 2010-12-02 23:44:14