フィルターのクリア

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

13 ビュー (過去 30 日間)
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 件のコメント
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 件)

Ramya M S
Ramya M S 2017 年 2 月 1 日
how can i xor 4 bit and 8 bit data?

Dr. Suneetha CH
Dr. Suneetha CH 2020 年 8 月 18 日
how to perform bitwise xor successively? i mean a XOR b XOR c .....

カテゴリ

Help Center および File ExchangeCell Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by