数组 – 如何将N-D数组的最后两个维度作为2D数组?

我在MATLAB中有一个3D数组,大小(myArray)= [100 100 50].现在,我想以2D矩阵的形式获取由第一维中的索引指定的特定图层.
我尝试过myMatrix = myArray(myIndex,:),但是它给了我一个尺寸为(myMatrix)= [1 100 50]的3D数组.

如何告诉MATLAB我对第一维不感兴趣(因为只有一层),所以可以简化矩阵?

注意:我还需要使用第二个索引,渲染大小(myMatrix)= [100 1 50]而不是所需的[100 50].解决方案也适用于这两种情况,最好适用于第三维.

最佳答案
使用squeeze功能,消除单例尺寸.

例:

A=randn(4,50,100);
B=squeeze(A(1,:,:));
size(B)

ans =

    50   100

这是一般化的,您不必担心您将索引的维度.所有单体尺寸被挤出.

转载注明原文:数组 – 如何将N-D数组的最后两个维度作为2D数组? - 代码日志