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