我==在OS X上使用MATLAB_R2009b 获得了一个非常奇怪的结果.示例来自提示:
s =
2
>> class(s)
ans =
double
>> class(s) == 'double'
ans =
1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
六次是吗?任何人都可以解释这个|| 提供解决方案?
Oli*_*rth 15
在Matlab中,字符串实际上只是字符数组.所以你真正在做的是比较两个数组.这进行了元素比较,即逐个字符.所以你可以这样做:
all(class(s) == 'double')
Run Code Online (Sandbox Code Playgroud)
但如果字符串长度class(s)不是6 ,那么会产生运行时错误.更安全的做法是:
strcmp(class(s), 'double')
Run Code Online (Sandbox Code Playgroud)
但你应该做的是:
isa(s, 'double')
Run Code Online (Sandbox Code Playgroud)