Я создал массив с нужным количеством элементов, затем использовал reshape
, чтобы установить желаемую размерность. Затем для установки каждого элемента необходимо использовать линейное индексирование, поскольку код должен выполняться для любого числа измерений.
c=zeros(1,2^m);
if m > 1, c=reshape(c,2*ones(1,m)); endif;
c(1)=1;
for i=0:m-1, c(2^i+1)=1; endfor
Например, если m = 4
, мы получим желаемое результат
octave:6> [c(1,1,1,1), c(2,1,1,1), c(1,2,1,1), c(1,1,2,1), c(1,1,1,2)]
ans =
1 1 1 1 1