MATLAB:使用列表访问多维数组的元素

emc*_*sen 6 matlab argument-unpacking

我有一个d维数组,A和长度等于d的向量inds.我想在inds访问A的值.

理想情况下,我会做类似A(*inds)的东西(借用Python的解包语法).我不知道如何在MATLAB中做到这一点.

如果我做A(inds),我实际上从A得到了单独的值,这不是我想要的.我想要的是inds的元素i是函数调用A()中的第i个参数.

gno*_*ice 13

一种解决方案是从您的下标索引向量中创建一个以逗号分隔的列表inds.您可以使用NUM2CELL将其转换为单元格数组,然后在编制{:}索引时使用语法A:

inds = num2cell(inds);
value = A(inds{:});
Run Code Online (Sandbox Code Playgroud)