arrays - 如何将 N 维数组的最后两个维度作为二维数组?

标签 arrays matlab multidimensional-array matrix n-dimensional

我在 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/

相关文章:

java - Java 数组是如何处理的?

javascript - 修改后保留原始数组顺序?

matlab - 标记大小单位与轴值成比例

matlab - MATLAB 中的直方图拟合和核密度图

javascript - 使用 d3.js 迭代多维数组

C - 返回的数组仅用第一个值填充数组

java - 使用另一个数组中的运算符计算数组的值

python - 如何在MATLAB的Conda环境中运行Python脚本?

java - 将文本文件读入二维数组

c - 将二维数组传递给线程函数