我有一个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中是否有类似的操作符或函数可以帮助解决我的问题?
答案 0 :(得分:1)
在matlab中有类似*result
的东西,它叫做逗号分隔列表。遗憾的是,您无法从数组创建逗号分隔列表,因此首先需要转换为单元格:
result=(num2cell(f(blah)));
myElement=v(result{:});