How to do xor operation in cell arrays?

Suppose,
A={'d9' '31'};
B={'42' '83'};
The expected output is:
Y={'42' '83'}
My input will not be the same always. So,how can I write a useful matlab code for each inputs?

6 Comments

In all those questions, i got an answer only for those inputs mentioned. But here i have a cell array and I wanted a general method to find the xor of cell arrays. In cell arrays, The input will be as follows,{'00' '01'} But in all other cases it was either 0000010000 or{'1' '0'} and so on???
Can somebody help me with this problem?
@Dorsana: Please do not let us guess, what the inputs are. 'd9' might mean, that this is a string representing a hex value.
Now check the values of 'd9' and '42'
hex dec bin
d9 217 11011001
42 66 01000010
XOR'ed:
9b 155 10011011
I have no idea, why you expect '42' as output. The '31' for the 2nd column is strange also. This is no XOR operation.
By the way: You can convert the values easily using hex2dec and dec2bin, such that the shown links should help already.
I am extremely sorry,it was my mistake. The Y result is {'9b' 'b2'}. But using those methods, I am getting a matrix value. Which is the best method for XOR operation, among all those, so that i get the required output.
Darsana P M
Darsana P M on 21 Nov 2017
Edited: Walter Roberson on 21 Nov 2017
I tried this method, but I got the output as a matrix. I need the answer as hexa decimal values?? What should I do?

Sign in to comment.

 Accepted Answer

If you start with a cell array of hexadecimal char arrays and want the same back:
cellfun(@(a,b) dec2hex(bitxor(hex2dec(a), hex2dec(b))), A, B, 'UniformOutput', false)
However, you would make your life easier if instead of a cell array you used a simple 2D char matrix for input and output:
A = ['d9';
'31']
B = ['42';
'83']
Y = dec2hex(bitxor(hex2dec(A), hex2dec(B)))

1 Comment

Thank you so much sir. This was the answer that I wanted.

Sign in to comment.

More Answers (1)

Earlier, I showed you how to do the xor on character vectors. From this you can see how to do the xor operation.
Early this morning, I showed you how to do addition with cell arrays. From this you can see how to extract inputs from cell arrays of character vectors and how to output back to cell arrays.
Now just put those two operations together. Use the data import and output from the addition code and use the xor from the xor code.

Categories

Community Treasure Hunt

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

Start Hunting!