Xor(A, B), does A, B have to be the same dimension?

2 views (last 30 days)
C = xor(A,B) performs a logical exclusive-OR of arrays A and B and returns an array containing elements set to either logical 1 (true) or logical 0 (false). So, A and B has to be the same dimension so it could compare, right? But in the example, A is a 1*2; while B is a 2*1 dimension matrix.
Can anyone help me explain it?
Thanks,
  2 Comments
Stephen23
Stephen23 on 12 Jun 2022
Edited: Stephen23 on 12 Jun 2022
"So, A and B has to be the same dimension so it could compare, right?"
No.
"Can anyone help me explain it?"
The XOR documentation states that they have to be compatible sizes:
Feiyang Bai
Feiyang Bai on 13 Jun 2022
Hi,
Thanks for the explaning and extra resource. I appreciate it.
Feiyang

Sign in to comment.

Accepted Answer

DGM
DGM on 12 Jun 2022
Edited: DGM on 12 Jun 2022
The arguments don't necessarily need to have the same size/shape, but they need to have compatible size/shape. Like many things in modern versions, implicit array expansion applies here. I imagine the example in the docs is something like:
xor([0 1],[0;1]) % xor two vectors
ans = 2×2 logical array
0 1 1 0
which is equivalent to
xor([0 1; 0 1],[0 0; 1 1]) % the two vectors expanded to a common array size
ans = 2×2 logical array
0 1 1 0
Consider the similarity:
plus([1 2 3 4],[1;2]) % add two vectors
ans = 2×4
2 3 4 5 3 4 5 6

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!