MATLAB Answers


how to do bitxor operation of two 1*255 matrix

Asked by moni sinha on 30 Nov 2018
Latest activity Edited by Greg
on 30 Nov 2018
h1 =1x255 logical
h3 = 1x255 logical
howto do bitxor of h1 and h3


Sign in to comment.

2 Answers

Answer by Greg
on 30 Nov 2018
Edited by Greg
on 30 Nov 2018

result = h1 | h3;
Edit: this is logical (bit) or, not xor. As posted elsewhere, simply use the xor function.


Show 1 older comment
Your screenshot clearly shows that h1 is 1x254, and c is 1x256. So yes, you're going to get an error telling you that their size do not match.
Note that |is the or operator, not the xor operator.
on 30 Nov 2018
The error message is clear: The array sizes are different. Here the variables h1 (logical) and c (double) are concerned. So why do you ask for "h1 =1x255 logical, h3 = 1x255 logical"?
Good catch Guillaume, i kept reading or not xor.
Why are we assuming c is the second argument? The original post explicitly states h1 and h3, both are logical and same size. All following posts are new problems to the original question.

Sign in to comment.

Answer by James Tursa
on 30 Nov 2018
Edited by James Tursa
on 30 Nov 2018

It's not entirely clear to me what operation you really want, but if the elements of h1 and h2 represent "bits", then you could just do this:
result = (h1 ~= h2); % equivalent of xor between the elements of h1 and h2
If h1 and h2 don't have the same number of elements, then that is a different problem that you will need to fix before doing the xor operation.


result = xor(h1, h2);
Guillaume's comment here should be a separate answer, and accepted.

Sign in to comment.