Изменение формы ячеек: преобразование ячейки 1xj с i наблюдениями в ячейку 1xi с j наблюдениями - PullRequest
0 голосов
/ 09 сентября 2018

Я хочу знать лучшие практики для изменения формы клеток.

Допустим, у меня есть ячейка 1х5, в каждой из которых есть 2 наблюдения. В моем примере я сделаю эту ячейку VAR. Для запуска примера:

cbar=linspace(0,1,2);
for i=1:5
    for j=1:2
VAR{i}(j)=i+cbar(j);
    end
end

Допустим, я хочу создать еще одну ячейку размером 1х2 с 5 наблюдениями в каждой ячейке, поэтому я изменяю форму ячейки VAR выше. Способ, которым я подхожу к этому, который не работает, следующий

for i=1:5
    for j=1:2
   VAR_new{j}(i)=VAR{i}(j);
    end
end

Бывает, что по какой-то причине VAR_new пуст.

Как я могу сделать это правильно? Спасибо!

1 Ответ

0 голосов
/ 10 сентября 2018

Вы можете комбинировать изменить форму , чтобы изменить форму матрицы до желаемых размеров, и mat2cell , чтобы преобразовать матрицу в массив ячеек:

VAR_new = mat2cell(reshape([VAR{:}],5,[]),5,repelem(1,2));

>> VAR_new

VAR_new =

  1×2 cell array

    {5×1 double}    {5×1 double}

>> VAR_new{1}

     1
     2
     2
     3
     3

>> VAR_new{2}

     4
     4
     5
     5
     6
...