Как создать все векторы из гиперкуба в измерении n? - PullRequest
1 голос
/ 10 мая 2019

Я хочу сохранить в матрице все векторы, созданные гиперкубом в измерении n, то есть для измерения n = 3, например:

matrix = [[0 0 0], [0 0 1], [0 1 0], [0 1 1],
          [1 0 0], [1 0 1], [1 1 0], [1 1 1]]

Есть ли хороший способ сделать это в scilab?

Спасибо!

1 Ответ

1 голос
/ 10 мая 2019

Может быть, так (это все равно что считать от 0 до 2 ^ n-1 в двоичном виде)

n=3;
mat = zeros(2^n,n);
for i = 1:2^n
    mat(i,:) = bitget(i-1,1:n); 
end

--> mat
 mat  = 

   0.   0.   0.
   1.   0.   0.
   0.   1.   0.
   1.   1.   0.
   0.   0.   1.
   1.   0.   1.
   0.   1.   1.
   1.   1.   1.
...