我有一个二维矩阵,其中列的 № 始终是 3 的倍数(例如 250×27
)- 由于结果的重复组织(A,B,C
、A、B、C
、A、B、C
等等)。我希望 reshape 此矩阵以创建一个包含 3 列的新矩阵 - 每列包含每种类型 (A,B,C
) 的聚合数据(例如 2250×3
) .
所以在 250×27
的矩阵中,1,4,7,10,13,16,19,22,25
列中的所有数据将是合并形成结果 reshape 矩阵的第一列。
生成的 reshape 矩阵中的第二列将包含 2,5,8,11,14,17,20,23,26
列的所有数据 - 依此类推。
有没有在 MATLAB 中执行此操作的简单方法?我只知道如何使用 reshape
如果我想合并的列是相邻的(1,2,3,4,5,6
)而不是不相邻的(1,4,7,10,13,16
) 等
最佳答案
无耻盗自@Divakar :
B = reshape( permute( reshape(A,size(A,1),3,[]), [1,3,2]), [], 3 );
关于arrays - 将矩阵折叠成列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40506417/