Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何将N-D数组的最后两个维度作为2D数组获取?_Arrays_Matlab_Multidimensional Array_Matrix_N Dimensional - Fatal编程技术网

Arrays 如何将N-D数组的最后两个维度作为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]。解决方案应适用于这两种情

我在MATLAB中有一个3D数组,大小(myArray)=[100 50]。现在,我想得到一个特定的层,由一维索引指定,以2D矩阵的形式。 我尝试了
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])