在 MATLAB 中将元胞数组中的行转换为列

Converting Rows into Columns in a cell array in MATLAB

我有一个 99x1 元胞数组,我想将它转换成一个 33x3 元胞数组。

我希望 99x1 元胞数组的前 3 行组成 33x3 元胞数组的第一行,然后 99x1 元胞数组的第 3 行到第 6 行组成 33x3 元胞数组的第二行大批。

我还需要重塑时的数据,以便在数据下降之前逐列检查。例如我需要:

1 2个 3个 4

成为

1、2; 3, 4

不是

1、3; 2, 4

将不胜感激

您可以简单地使用 reshape 功能。由于 reshape(yourcell,[],3) 将首先填充第一列,然后是第二列,依此类推而不是逐行填充,因此您需要将其与转置运算符 .':

结合使用
newcell=reshape(yourcell,3,[]).'

这样,您将首先使用 reshape 创建一个 3x33 单元格,然后将其转换为所需的 33x3 单元格。 [] 告诉 reshape 根据需要创建尽可能多的列。