我偶然发现了一些matlab代码,其中一维向量(比如长度为100的“信号”)由一个3D矩阵(比如尺寸为10x10x10的“距离”)索引,结果(“信号(距离)”)是一个3D矩阵与索引的 3D 矩阵完全相同的尺寸 10x10x10。
matlab实际上在那里做什么?向量的元素去哪了?你知道要搜索的关键字吗?
我用“索引”等关键字搜索了stackoverflow和mathworks帮助页面,但我没有找到任何有用的东西......
谢谢!
我偶然发现了一些matlab代码,其中一维向量(比如长度为100的“信号”)由一个3D矩阵(比如尺寸为10x10x10的“距离”)索引,结果(“信号(距离)”)是一个3D矩阵与索引的 3D 矩阵完全相同的尺寸 10x10x10。
matlab实际上在那里做什么?向量的元素去哪了?你知道要搜索的关键字吗?
我用“索引”等关键字搜索了stackoverflow和mathworks帮助页面,但我没有找到任何有用的东西......
谢谢!
在我的另一个答案中,我在“使用矩阵下标的线性索引”部分解释了也可以使用另一个矩阵进行索引。
下标矩阵被简单地转换为列向量,并用于线性索引。然而,生成的矩阵总是与下标矩阵具有相同的维度。
例如,假设:
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