xoring bits within a vector

6 vues (au cours des 30 derniers jours)
emad
emad le 14 Oct 2014
Modifié(e) : emad le 14 Oct 2014
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 commentaire
Guillaume
Guillaume le 14 Oct 2014
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

Connectez-vous pour commenter.

Réponse acceptée

Thorsten
Thorsten le 14 Oct 2014
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 commentaire
emad
emad le 14 Oct 2014
Modifié(e) : emad le 14 Oct 2014
thanks Thorsten you save my day one more thing, what if i want to xor every three bits together?

Connectez-vous pour commenter.

Plus de réponses (2)

Guillaume
Guillaume le 14 Oct 2014
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 le 14 Oct 2014
Modifié(e) : emad le 14 Oct 2014
dear Guillaume thanks very much your code works very good...

Catégories

En savoir plus sur Numeric Types dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by