How can I obtain the permutation of 3 binary variables?

8 views (last 30 days)
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!!

Accepted Answer

Rik
Rik on 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 Comments
Matteo Masto
Matteo Masto on 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 on 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

Sign in to comment.

More Answers (0)

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!