【问题标题】:array as index of a vector in matlab数组作为matlab中向量的索引
【发布时间】:2025-12-12 00:20:06
【问题描述】:

我偶然发现了一些 matlab 代码,其中 1D 向量(例如长度为 100 的“信号”)由 3D 矩阵(例如尺寸为 10x10x10 的“距离”)索引,结果(“信号(距离)”)是与索引的 3D 矩阵具有完全相同尺寸 10x10x10 的 3D 矩阵。

matlab 在那里实际上做了什么?向量的元素去哪了?你知道要搜索的关键字吗?

我用“索引”之类的关键字搜索了 * 和 mathworks 帮助页面,但没有发现任何有用的...

谢谢!

【问题讨论】:

    标签: arrays matlab matrix-indexing


    【解决方案1】:

    another answer of mine,我在“使用矩阵下标的线性索引”部分解释了也可以使用另一个矩阵进行索引。

    下标矩阵被简单地转换为列向量,并用于线性索引。然而,生成的矩阵总是与下标矩阵具有相同的维度

    例如,假设:

    A = [10 20 30 40 50 60 70 80 90];
    I = [1 3; 1 2];
    

    在这种情况下A(I) 与写reshape(A(I(:)), size(I)) 相同。结果是:

    ans = 
        10    70
        10    40
    

    【讨论】: