How to do xor operation in cell arrays?

3 views (last 30 days)
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
Darsana P M
Darsana P M on 21 Nov 2017
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

Guillaume
Guillaume on 21 Nov 2017
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
Darsana P M
Darsana P M on 21 Nov 2017
Thank you so much sir. This was the answer that I wanted.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 21 Nov 2017
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

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!