# Hi everybody, I want different scenarios of a vector with 0 and 1 elements. For example v=[0 0 0 0 0 0 0], v=[0 1 0 1 0 1 0 ] , v=[0 1 1 1 1 1 1] and so on. But the first element of vector is fixed and has be zero .

1 view (last 30 days)
M Shaka on 9 Nov 2015
Commented: arich82 on 9 Nov 2015
Hi everybody, I want different scenarios of a vector with 0 and 1 elements. For example v=[0 0 0 0 0 0 0]. v=[0 1 0 1 0 1 0 ] ,v=[0 1 1 1 1 1 1] and so on. But the first element of vector is fixed and has be zero

Guillaume on 9 Nov 2015
"Thank you very much. But I need all 64 different scenarios."
Your example uses 7 bits, that would be 128 different scenarios, if you vary all the bits. Regardless, to get the first 64 binary numbers
dec2bin(0:63, 7) - '0'

arich82 on 9 Nov 2015
Use dec2bin with its second argument:
>> n = 6;
>> a = dec2bin(0:2^n-1, n+1)
a =
0000000
0000001
0000010
0000011
0000100
0000101
0000110
0000111 ...
[remaining output elided]
Note that this returns a char array. If you need an array of doubles, you can "cheat" to convert it by subtracting the string '0':
a = dec2bin(0:2^n-1, n+1) - '0';
Alternatively, you can use bitget, wrapped inside a call to bsxfun:
a = bsxfun(@bitget, [0:2^n-1].', n+1:-1:1);
Please accept this answer if it helps, or let me know in the comments if I missed something.
arich82 on 9 Nov 2015
Guillaume's answer is essentially the same, and he submitted 4 minutes earlier while I was still typing; he should get the accepted answer. I'll leave mine here in case someone wants to reference the bitget solution.

Thorsten on 9 Nov 2015
x = [0 rand(1,6) > 0.5];
M Shaka on 9 Nov 2015
Thank you very much. But I need all 64 different scenarios.