How can I obtain the permutation of 3 binary variables?

5 Ansichten (letzte 30 Tage)
Matteo Masto
Matteo Masto am 22 Sep. 2021
Kommentiert: Rik am 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!!

Akzeptierte Antwort

Rik
Rik am 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 Kommentare
Matteo Masto
Matteo Masto am 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 am 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by