如何将带有表的71 x 12单元格更改为带有表的1 x 71单元格

问题描述 投票:0回答:1

我使用此代码将我的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
matlab cell-array
1个回答
0
投票

您都可以使用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)]
© www.soinside.com 2019 - 2024. All rights reserved.