在 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 根据需要创建尽可能多的列。
我有一个 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 根据需要创建尽可能多的列。