Arrays 如何将N-D数组的最后两个维度作为2D数组获取?
我在MATLAB中有一个3D数组,大小(myArray)=[100 50]。现在,我想得到一个特定的层,由一维索引指定,以2D矩阵的形式。 我尝试了Arrays 如何将N-D数组的最后两个维度作为2D数组获取?,arrays,matlab,multidimensional-array,matrix,n-dimensional,Arrays,Matlab,Multidimensional Array,Matrix,N Dimensional,我在MATLAB中有一个3D数组,大小(myArray)=[100 50]。现在,我想得到一个特定的层,由一维索引指定,以2D矩阵的形式。 我尝试了myMatrix=myArray(myIndex,:,:),但这给了我一个大小为的3D数组(myMatrix)=[1100 50] 我如何告诉MATLAB我对第一维不感兴趣(因为只有一层),这样它就能简化矩阵 注意:我还需要对第二个索引执行此操作,渲染大小(myMatrix)=[100 150],而不是所需的[100 50]。解决方案应适用于这两种情
myMatrix=myArray(myIndex,:,:)代码>,但这给了我一个大小为的3D数组(myMatrix)=[1100 50]
我如何告诉MATLAB我对第一维不感兴趣(因为只有一层),这样它就能简化矩阵
注意:我还需要对第二个索引执行此操作,渲染大小(myMatrix)=[100 150]
,而不是所需的[100 50]
。解决方案应适用于这两种情况,最好也适用于第三维度。使用函数,该函数可删除单一维度
reshape(myArray(myIndex,:,:),[100,50])
示例:
A=randn(4,50,100);
B=squeeze(A(1,:,:));
size(B)
ans =
50 100
这是广义的,您不必担心索引是沿着哪个维度进行的。所有单态维度都被挤出。压缩
,重塑
和置换
可能是处理N-D矩阵时最重要的三个函数。仅举一个如何使用第三个函数的示例:
A=randn(4,50,100);
B=permute(A(1,:,:),[2,3,1])