在MATLAB中使用`=`算子得到的奇怪结果

在MATLAB中使用`=`算子得到的奇怪结果,matlab,Matlab,我在OS X上的MATLAB_R2009b中使用==得到了一个非常奇怪的结果。提示中的示例: s = 2 >> class(s) ans = double >> class(s) == 'double' ans = 1 1 1 1 1 1 六次是吗?有人能解释这一点吗?提供一个解决方案吗?在Matlab中,字符串实际上只是字符数组。所以你真正要做的是比较两个数组。这将进行元素级比较,即逐字符比较。所以你可以做:

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

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

六次是吗?有人能解释这一点吗?提供一个解决方案吗?

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

但是如果
class
的字符串长度不是6,则会出现运行时错误。更安全的做法是:

strcmp(class(s), 'double')
但你真正应该做的是:

isa(s, 'double')
isa(s, 'double')