【发布时间】:2013-08-03 00:30:52
【问题描述】:
我有一个尺寸为 427x470x48 的 3 维矩阵
我想把它改造成一个二维矩阵:48x200690
这意味着 old(1, 1, :) 将对应于 new(:, 1)
此外,old(1,2,:) 将对应于 new(:,2) 等等。
谢谢
【问题讨论】:
标签: matlab matrix multidimensional-array reshape
我有一个尺寸为 427x470x48 的 3 维矩阵
我想把它改造成一个二维矩阵:48x200690
这意味着 old(1, 1, :) 将对应于 new(:, 1)
此外,old(1,2,:) 将对应于 new(:,2) 等等。
谢谢
【问题讨论】:
标签: matlab matrix multidimensional-array reshape
做:
new = reshape(permute(old, [3 2 1]), 48, []);
您还可以通过以下方式粗略检查它们是否相等:
numel(intersect(old(1,1,:),new(:,1))) == 48;
【讨论】:
new = reshape(permute(old, [3 2 1]), 48, []);。这个[] 计算其他维度的乘积并将其分配给reshape 的最后一个维度。因此,只要您想要48xn 输出,n 将永远是正确的。