How can I obtain the permutation of 3 binary variables?

5 vues (au cours des 30 derniers jours)
Matteo Masto
Matteo Masto le 22 Sep 2021
Commenté : Rik le 22 Sep 2021
Hi everyone!
Can anybody tell me how to obtain the classical permutation matrix of binary variables?
for example given n=3 boolean variables A B C:
ABC
000
001
010
011
100
101
110
111
I hope there would be a command for this.
thank you!!

Réponse acceptée

Rik
Rik le 22 Sep 2021
The easiest way to do this is with bin2dec. You can loop from 0 to 2^n-1 to get all combinations. To convert the character array back to a numeric vector you can simply use =='1'.
  4 commentaires
Matteo Masto
Matteo Masto le 22 Sep 2021
thanks a lot! I had to fix it a bit but now it works :)
n = 3;
H = zeros(2^n,n);
for k=0:2^n-1
x=dec2bin(k,n)
for q = 1:1:n
H(k+1,q) = str2num(x(q));
end
end
Rik
Rik le 22 Sep 2021
str2num is not a fix, it introduces a call to eval, which is completely unnecessary. Comparing to '1' will already convert to a numeric vector. You can also pass a vector to dec2bin:
n=3;
str=dec2bin(0:2^n-1,n);
H= str=='1';
disp(H)
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion 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