You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中如何直接获取优化的目标函数最优值fval?

直接获取fminbnd的最优值输出

当然可以直接获取目标函数的最优值fval,不用先保存最优参数x,这里给你几种符合Matlab语法的实用方法:

  • 最推荐的简洁写法:用波浪线~忽略不需要的第一个输出,直接接收第二个输出

    [~, fval] = fminbnd(myfunction, -1, 1);
    

    这种方式是Matlab官方提倡的,代码清晰易读,执行效率也高。

  • 类似你设想的"直接索引"写法:如果非要用类似part的思路,可以把函数的多输出打包成元胞数组再提取,不过写法稍繁琐:

    outputs = cell(1,2);
    [outputs{:}] = fminbnd(myfunction, -1, 1);
    fval = outputs{2};
    
  • 一行匿名函数包装写法:如果想在一行内完成,也可以用匿名函数包裹调用逻辑:

    fval = (function() [~,v] = fminbnd(myfunction,-1,1); v)();
    

需要注意的是,Matlab的函数输出数量默认由调用时指定的接收变量数量决定——直接单独调用fminbnd(...)只会返回第一个输出x,但只要明确指定接收第二个输出(哪怕用~占位),函数就会返回对应的fval。

内容的提问来源于stack exchange,提问作者Iron Soles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 14:12:11