【问题标题】:Pass user-input number of variables into Matlab function handle将用户输入的变量数量传递给 Matlab 函数句柄
【发布时间】:2023-03-17 13:28:01
【问题描述】:

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

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

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

在这个例子中,最终的 fhandle 是所有 x 的总和。有没有办法实现这一点并优化所有 x 值以最小化 fhandle?

【问题讨论】:

    标签: matlab function function-pointers


    【解决方案1】:

    函数句柄接受varargin。因此,您可以重写您的示例以接受可变数量的输入:

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

    然后

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

    最好的,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-23
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多