说我有功能

[f,g,h] = function (x)

在Matlab中的文件function.m中。我如何找到值x,例如使用fminunc最大化gfminunc文档仅在目标函数返回单个值时处理这种情况。

最佳答案

您必须为fminunc提供一个返回标量的函数,因此在您的情况下,您只需要声明一个返回g的辅助函数:

g = function helper_func(x)
    [f, g, h] = func(x);


并将辅助函数输入fminunc

x = fminunc(@helper_func, x0);

10-06 07:12