在MATLAB中使用`==`运算符的奇怪结果

时间:2010-12-02 23:36:33

标签: matlab

我在OS X的MATLAB_R2009b中使用==获得了一个非常奇怪的结果。提示示例:

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

六次是吗?任何人都可以解释这个||提供解决方案?

1 个答案:

答案 0 :(得分:15)

在Matlab中,字符串实际上只是字符数组。所以你真正在做的是比较两个数组。这进行了元素比较,即逐个字符。所以你可以做:

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

但如果class(s)的字符串长度不是6,则会产生运行时错误。要做的更安全:

strcmp(class(s), 'double')

但你应该做的是:

isa(s, 'double')