xoring bits within a vector

hi every one.... i'm having a binary matrix with [101101110011 ; 100110110101 ; 011110011001 ; 111100010010] and i want to XOR bit1 with bit3 , bit4 with bit6, bit 7 with bit9, bit 10 with bit 12 for the whole matrix, i try to loop it but it didn't work... help needed

1 个评论

Is your matrix an n x 12 char array, a cell array of strings, or something else.
Assuming your matrix is called m, can you show the output of
whos m

请先登录,再进行评论。

 采纳的回答

Use space between the the 1's and 0's
M = [1 0 1 1 0 1 1 1 0 0 1 1 ; 1 0 0 1 1 0 1 1 0 1 0 1 ; 0 1 1 1 1 0 0 1 1 0 0 1 ; 1 1 1 1 0 0 0 1 0 0 1 0];
xor(M(:, 1:3:end), M(:, 3:3:end))

1 个评论

emad
emad 2014-10-14
编辑:emad 2014-10-14
thanks Thorsten you save my day one more thing, what if i want to xor every three bits together?

请先登录,再进行评论。

更多回答(2 个)

Assuming your matrix is an n x 12 char array, and assuming bit 1 is the first bit on the left.
m = ['101101110011' ; '100110110101' ; '011110011001' ; '111100010010'];
mnum = m - '0'; %convert the strings into a matrix of 0/1 integers
mnxor = xor(mnum(:, [1 4 7 10]), mnum(:, [3 6 9 12])); %perform the xor. Change each array for specific bits.
mxor = char(mnxor + '0'); %convert back into a char array
emad
emad 2014-10-14
编辑:emad 2014-10-14

0 个投票

dear Guillaume thanks very much your code works very good...

类别

帮助中心File Exchange 中查找有关 Numeric Types 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by