How can I obtain the permutation of 3 binary variables?

18 visualizaciones (últimos 30 días)
Matteo Masto
Matteo Masto el 22 de Sept. de 2021
Comentada: Rik el 22 de Sept. de 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!!

Respuesta aceptada

Rik
Rik el 22 de Sept. de 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 comentarios
Matteo Masto
Matteo Masto el 22 de Sept. de 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 el 22 de Sept. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Operators and Elementary Operations en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by