Как изменить массив ячеек 71 x 12 с таблицами на массив ячеек 1 x 71 с таблицей - PullRequest
0 голосов
/ 28 января 2020

Я использую этот код, чтобы изменить мой 1 x 71 массив ячеек, чтобы разделить на 71 x 12 массив ячеек. Я делаю то, что хочу, с разделенной ячейкой, и я хочу вернуться в 1 x 71 массив ячеек, но я не знаю как?

Вот код, который я использую для изменения 1 x 71 на 71 x 12 пожалуйста, помогите мне изменить это:

Cmo = cell(numel(C),12);  
for i = 1:numel(C)
    Cmo(i,:) = arrayfun(@(m){C{i}(month(C{i}.date) == m, :)},1:12);
end

1 Ответ

0 голосов
/ 28 января 2020

Вы можете использовать reshape для обоих (но оно поддерживает количество элементов, поэтому оно должно делиться без остатка):

C = cell(1,72);
% 1x72 => 12x6
C = reshape(C,12,length(C)/12);
% 12x6 => 1x72
C = reshape(C,size(C,2)*12,1);

Это не работает для вашего случая, так как у вас есть только 71 записей. Таким образом, вам придется сделать цикл или расширить свой матричный кулак, а затем использовать Reshape

Num = ceil(length(C)/12)*12-length(C);
% assuming that C is an array (1x??)
C = [C,cell(1,Num)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...