MATLAB Answers

0

What is difference between isequal and == in comparing two vectors

Asked by Hansori Chang on 13 Sep 2019 at 21:32
Latest activity Commented on by Stephen Cobeldick on 15 Sep 2019 at 5:31
Two vectors that have the same values and same length.
However, I want to know what are the difference between == and isequal(A,B), comparing two vectors

  0 Comments

Sign in to comment.

1 Answer

Answer by the cyclist
on 13 Sep 2019 at 21:36
Edited by the cyclist
on 13 Sep 2019 at 21:40

isequal will return a single logical value, indicating whether or not the two vectors are identical.
== will give a vector with element-by-element comparison.
>> x = [1 2 3 4];
>> y = [1 2 3 5];
>> x == y
ans =
1×4 logical array
1 1 1 0
>> isequal(x,y)
ans =
logical
0
Also, isequal will work on unequal-sized vectors, and == will give an error (because the mismatch in number of elements prevents the element-by-element comparison).

  11 Comments

One more example of inconsistentcy
>> isequal( {'frog'} , "frog" )
ans =
logical
1
>> isequal( 'frog' , "frog" )
ans =
logical
1
>> isequal( 'frog' , {'frog'} )
ans =
logical
0
Scratch my head...
(I was replying to Stephen, not you Bruno.)
I agree that the non-transivitity is pretty surprising, and could be documented more clearly. Your latest set of comparisons are really a surprise to me, especially that
isequal( {'frog'} , "frog" )
is true.

Sign in to comment.