【发布时间】:2014-05-09 17:31:51
【问题描述】:
我正在使用一个相当大的 3D 矩阵 (32x87x378),我希望能够提取矩阵的每个第 N 个元素,同时保持它们的顺序相同。类似于我之前提出的问题:Matlab: Extracting Nth element of a matrix, while maintaining the original order of matrix
我得到的方法非常实用(而且简单)并且在大多数情况下都很好用。对于一个随机 (1x20) 矩阵,我想要每 5 个值,从 4 和 5 开始(这样我就剩下一个 1x8 矩阵 (ab) 元素 4,5,9,10,14,15,19,20 )。如下:
r = rand(1,20);
n = 5;
ab = r(sort([4:n:numel(r) 5:n:numel(r)]))
我的问题是,这种方法如何用于 3D 矩阵 r 的第三维(或者可以吗?),例如:
r = rand(2,5,20);
应该相当简单,比如:
n = 5;
ab = r(sort([4:n:numel(r) 5:n:numel(r)],3));
但是,这会给我一个 1x80 矩阵,因为它不保留原始尺寸。有没有办法使用排序功能来纠正这个问题?我也愿意接受其他建议,但我只是想确保我没有遗漏任何东西。
提前致谢。
【问题讨论】: