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