other than strcmp???

11 次查看(过去 30 天)
AZZA
AZZA 2011-3-14
I am trying to use strcmp to compare 2 logical arrays, reading the notes, this cannot be used for logical arrays, only character arrays.
http://www.mathworks.com/help/techdoc/ref/strcmp.html
TF = strcmp(C1, C2)
As it stands i have 2 options, either:
1) find a function that will allow me to compare logical arrays.(No such look so far).
2) convert all the 1's to a specific letter and all my 0's to a different letter also, then i should be able to use strcmp. (But am unsure how to change specific data in an array.)
Regards
AZZA

回答(3 个)

Paulo Silva
Paulo Silva 2011-3-14
a=logical([1 0 1 1])
b=logical([1 0 1 1])
isequal(a,b)
ans=
1
a=logical([1 0 1 1])
b=logical([1 0 0 1])
isequal(a,b)
ans=
0

Walter Roberson
Walter Roberson 2011-3-14
You cannot successfully strcmp logical values for no particular reason I can see. The comparison just returns false.
You can, however,
strcmp(char(C1),char(C2))

AZZA
AZZA 2011-3-14
Thanks for your answers guys, i have figured it out.
It is similar to what Paul Silva was getting at. So thank you both.
I used the following in the end:
C = A & B;
As this is a logic compare instruction. (Logic AND) Which also ensures C is the same size 32x32 matrix as the objects A and B that are being compared.
Cheers
AZZA
  1 个评论
Walter Roberson
Walter Roberson 2011-3-14
That approach will not work if A and B are not the same size, and it is unable to detect locations where one of the two has a 0 but the other has a 1.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Cell Arrays 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by