我在 MATLAB 中有一个 3D 数组,size(myArray) = [100 100 50]
。现在,我想获取一个特定层,该层由 第一个 维度中的索引以二维矩阵的形式指定。
我尝试了 myMatrix = myArray(myIndex,:,:);
,但这给了我一个 3D 数组,其中 size(myMatrix) = [1 100 50]
。
我如何告诉 MATLAB 我对第一维不感兴趣(因为只有一层),所以它可以简化矩阵?
注意:我还需要对第二个索引执行此操作,呈现 size(myMatrix) = [100 1 50]
而不是所需的 [100 50]
.解决方案应该适用于这两种情况,最好也适用于三维。
最佳答案
使用 squeeze
函数,它删除单例维度。
示例:
A=randn(4,50,100);
B=squeeze(A(1,:,:));
size(B)
ans =
50 100
这是一般化的,您不必担心索引的维度。所有单体尺寸都被挤出。
关于arrays - 如何将 N 维数组的最后两个维度作为二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5720062/