how to perform bitwise logical xor for two matrices having 13 bit binary data each?

I have two cell arrays with each element having 13 bit binary strings. How to perform bitwise XOR for these two cell arrays.
For eg: consider two 3x3 cell arrays A and B
A= '1011111111011' '1011111111011' '1011111111011'
'1100000111111' '1100000111111' '1100000111111'
'1100000001000' '1100000001000' '1100000001000'
B= '1100001001010' '1100001001010' '1100001001010'
'1011111100010' '1011111100010' '1011111100010'
'1100000001110' '1100000001110' '1100000001110'
My desired output is as below
C=A XOR B
ie C(1,1)= '1011111111011' XOR '1100001001010'
C(1,1)= '0111111011001'
Similarly for all the elements a bitwise XOR should be performed

2 件のコメント

Guillaume
Guillaume 2015 年 1 月 29 日
Your example shows two cell arrays containing strings (made up of characters '0' and '1'), not two matrices containing binary data (which is a just numbers)
So, do you have matrices or cell arrays, and do they contain strings or numbers?
Abirami
Abirami 2015 年 1 月 29 日
Ive edited the qn sir....

サインインしてコメントする。

 採用された回答

Guillaume
Guillaume 2015 年 1 月 29 日
編集済み: Guillaume 2015 年 1 月 29 日
Assuming that what you have are cell arrays of strings, and you want to output a cell array of string as well, this would be one way to do it:
A = {'1011111111011' '1011111111011' '1011111111011'
'1100000111111' '1100000111111' '1100000111111'
'1100000001000' '1100000001000' '1100000001000'};
B = {'1100001001010' '1100001001010' '1100001001010'
'1011111100010' '1011111100010' '1011111100010'
'1100000001110' '1100000001110' '1100000001110'};
C = cellfun(@(a,b) char((a ~= b) + '0'), A, B, 'UniformOutput', false)
However, I don't really see a reason to operate on strings, when operating on numbers (and keeping it that way) would be much faster:
A = reshape(bin2dec(A), size(A))
B = reshape(bin2dec(B), size(B))
C = bitxor(A, B)

4 件のコメント

Abirami
Abirami 2015 年 1 月 29 日
thank u sir....will try the second method for sure
Abirami
Abirami 2015 年 1 月 29 日
Sir i have a problem in executing the second command, it says 'Undefined function or method 'bitxor' for input arguments of type'cell'. What should i do?
Guillaume
Guillaume 2015 年 1 月 29 日
編集済み: Guillaume 2015 年 1 月 29 日
Hum, are you sure you've run the first two lines (i.e. converted your cell arrays of strings into matrices of numbers)? By the 3rd line, A and B shouldn't be cell anymore.
Rabia Nazli
Rabia Nazli 2017 年 7 月 30 日
setxor can be used, like c=setxor(A,B)

サインインしてコメントする。

その他の回答 (2 件)

Dr. Suneetha CH
Dr. Suneetha CH 2020 年 8 月 18 日

0 投票

how to perform bitwise xor successively? i mean a XOR b XOR c .....

カテゴリ

ヘルプ センター および File ExchangeData Type Conversion についてさらに検索

質問済み:

2015 年 1 月 29 日

回答済み:

2020 年 8 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by