说我有功能[f,g,h] = function (x)
在Matlab中的文件function.m
中。我如何找到值x
,例如使用fminunc
最大化g
? fminunc
文档仅在目标函数返回单个值时处理这种情况。
最佳答案
您必须为fminunc
提供一个返回标量的函数,因此在您的情况下,您只需要声明一个返回g
的辅助函数:
g = function helper_func(x)
[f, g, h] = func(x);
并将辅助函数输入
fminunc
:x = fminunc(@helper_func, x0);