由另一个向量指定的MATLAB多维数组的访问元素

时间:2015-09-30 07:26:57

标签: arrays matlab

我有一个MATLAB函数,它返回一个4元素向量,例如[1 2 3 4]。我想使用该函数输出来访问现有4维向量中的相应元素,即vec(1, 2, 3, 4)。有没有办法做到这一点没有存储结果,然后显式访问元素,如下所示?

result = f(blah);
myElement = vec(result(1), result(2), result(3), result(4));

在我(受Python影响)的头脑中,答案看起来像这样:

result = f(blah);
myElement = vec(*result); % or vec(toSubscripts(result)); or similar

Python中的*运算符将列表扩展为逗号分隔的参数。在MATLAB中是否有类似的操作符或函数可以帮助解决我的问题?

1 个答案:

答案 0 :(得分:1)

在matlab中有类似*result的东西,它叫做逗号分隔列表。遗憾的是,您无法从数组创建逗号分隔列表,因此首先需要转换为单元格:

result=(num2cell(f(blah)));
myElement=v(result{:});