将用户输入的变量数量传递给 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
最佳,
我希望使用 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
最佳,