arrays - 将矩阵折叠成列

标签 arrays matlab matrix reshape

我有一个二维矩阵,其中列的 № 始终是 3 的倍数(例如 250×27)- 由于结果的重复组织(A,B,C A、B、CA、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/

相关文章:

r - 对 2 个距离矩阵求和以获得第三个 'overall' 距离矩阵(生态环境)

javascript - 我可以在javascript中将整个数组插入到其他数组位置吗?

javascript - 如何识别任意字符串?

matlab - 用于按组快速求和的矩阵索引

python - 如何从图像创建视频?

r - 如何处理R中矩阵的无穷大?

C++ 用数组简单计算分数

javascript - 如何使用过滤数组删除数组中的项目?

Matlab A( :, 1)' 和 A(:) 的 Python 等效项

python - python中matlab的deconv高效版