开发者

Weird result using `==` operator in MATLAB

Im getting a really weird result using == in MATLAB_R2009b on OS X. Example from the prompt:

s =
     2
>> class(s)
ans =
double
>> class(s) == 'double'
ans =
     1     1  开发者_运维技巧   1     1     1     1

Six times yes? Can anyone explain this || offer a solution?


In Matlab, strings are really just arrays of characters. So what you're really doing is comparing two arrays. This does an element-wise compare, i.e. character-by-character. So you could do:

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

but that would give a run-time error if the string length of class(s) was not 6. Much safer would be to do:

strcmp(class(s), 'double')

But what you should really be doing is:

isa(s, 'double')
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜