我想将一个向量拼接成一个函数调用,但是我找不到这样做的方法。有可能吗?
要扩展我的意思,请说我们的长度为x
的向量n
和带有f
个参数的函数n
。我希望通过调用f(x(1), x(2), ..., x(n))
或f(x)
之类的内容来致电f(splice(x))
。如果x
是单元格数组而不是向量,则调用f(x{:})
将获得所需的结果;只有当x
是一个向量时才会有一些等价物。
我希望我缺少一些操作员或功能。我可以拨打y = num2cell(x)
,然后拨打f(y{:})
,但这不是我正在寻找的。 p>
答案 0 :(得分:7)
正如评论中已经提到的那样
tmp = num2cell(x)
f(tmp{:})
是要走的路。
一个函数splice
,以便f(splice(x))
可以做你想做的事情,但不能解决问题。
即使你可以将输入分成多个输出,f
只接受第一个参数(类似于你在命令行调用函数而不请求输出)。
在这种情况下,subsref
不起作用,例如
subsref(num2cell([1 2]),struct('type','{}','subs',{{':'}}))
将与splice
- 函数执行相同的操作,即仅返回一个输出,除非已明确请求多个输出。