Matlab ---将矢量拼接成函数调用的参数

时间:2012-07-12 23:01:21

标签: matlab

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

要扩展我的意思,请说我们的长度为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{:}),但这不是我正在寻找的。

1 个答案:

答案 0 :(得分:7)

正如评论中已经提到的那样

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

是要走的路。

一个函数splice,以便f(splice(x))可以做你想做的事情,但不能解决问题。 即使你可以将输入分成多个输出,f只接受第一个参数(类似于你在命令行调用函数而不请求输出)。

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