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

Matlab 如何将带有表格的71 x 12单元格数组更改为带有表格的1 x 71单元格数组,matlab,cell-array,Matlab,Cell Array,我使用此代码将我的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 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

您可以对这两种方法使用
重塑
(但它保留了元素的数量,因此它必须是可除的,没有余数):

这不适用于您的案例,因为您只有71个条目。因此,你将不得不做循环或延长你的矩阵拳头,然后使用重塑

Num = ceil(length(C)/12)*12-length(C);
% assuming that C is an array (1x??)
C = [C,cell(1,Num)]

为什么在这里使用
arrafun
?这似乎奇怪地复杂。首先尝试一个更干净的实现——特别是当您刚接触Matlab时,所有这些数据转换似乎都是可疑的。你为什么认为你需要这样做?与上一个问题一样,似乎只需保留数据并使用订阅即可满足所有需求。请给出一个你想要达到的最低限度的例子,以便我们能给出一个更相关的答案。
Num = ceil(length(C)/12)*12-length(C);
% assuming that C is an array (1x??)
C = [C,cell(1,Num)]