将用户输入的变量数量传递给 Matlab 函数句柄

Pass user-input number of variables into Matlab function handle

我希望使用 fminsearch 函数进行最小化。根据 documentation,fminsearch 需要函数句柄和初始参数估计。

但是,我一直在努力创建一个接受可变数量输入的函数句柄。这是我希望我的代码如何运行的示例:

for i = 1:M
    fhandle = @(x)(x(i) + @fhandle)
end

在这个例子中,最终的fhandle是所有x的总和。有什么方法可以实现这一点并优化所有 x 值以使 fhandle 最小化吗?

函数句柄接受 varargin。所以你的例子可以被重写以接受可变数量的输入:

fhandle = @(varargin) sum([varargin{:}])

然后是

>> fhandle(1)
ans =
     1

>> fhandle(1,2)
ans =
     3

>> fhandle(1,2,3)
ans =
     6

最佳,