14

我想将一个向量拼接到一个函数调用中,但我找不到这样做的方法。可能吗?

为了扩展我的意思,假设我们有x长度向量n和一个fn参数的函数。我希望能够f(x(1), x(2), ..., x(n))通过调用类似的东西来调用f(x)or f(splice(x))。如果x是元胞数组而不是向量,则调用f(x{:})将获得所需的结果;x当是一个向量时,似乎有一些等价物似乎是合理的。

我希望有一些我缺少的运算符或功能。我可以打电话y = num2cell(x)后跟f(y{:}),但这并不是我真正想要的。

4

1 回答 1

7

正如评论中已经提到的

tmp = num2cell(x)
f(tmp{:})

是要走的路。

一个可以splicef(splice(x))你想做的事情的功能,并不能解决问题。即使您可以将输入拆分为多个输出,f也只需要第一个参数(类似于您在命令行调用函数而不请求输出)。

在这种情况下甚至subsref不起作用,因为 eg subsref(num2cell([1 2]),struct('type','{}','subs',{{':'}}))将与 -function 执行相同的操作splice,即仅返回一个输出,除非已明确请求多个输出。

于 2012-07-13T01:32:00.610 回答