4 matrix generation depending on a specific value,

i want to generate a matrix of all possible binary combinations dpeending on a specfic 1x4 vector, and the vector elements are randomly generated from 1:4.
for example if the vector is [2 3 2 4], the first matrix should be all possible combinations of 2 bits
[0 0; 0 1; 1 0 ; 11]
, the second matrix should be all possbile combinations of 3 bits,
[ 0 0 0; 0 0 1; 0 1 0; 0 1 1; 1 0 0; 1 0 1; 1 1 0 ; 1 1 1]
and so on..

 Accepted Answer

Try this
v = [2 3 2 4];
C = arrayfun(@(x) {dec2bin(0:2^x-1)-48}, v);
Result
>> C{1} % first matrix
ans =
0 0
0 1
1 0
1 1
>> C{2} % second matrix
ans =
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
>> C{3} % third matrix
ans =
0 0
0 1
1 0
1 1
>> C{4} % fourth matrix
ans =
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

More Answers (1)

s = [0 1] ;
iwant1 = npermutek(s,2) ;
iwant2 = npermutek(s,3) ;
iwant3 = npermutek(s,4) ;

Community Treasure Hunt

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

Start Hunting!