在Matlab优化中访问先前的迭代变量

时间:2016-10-04 05:20:00

标签: matlab optimization

我试图在Matlab中使用fmincon最小化函数,但在评估我的约束函数时,我需要上一次迭代中变量的值。

我的问题是:我如何在每次迭代中访问变量的值?

1 个答案:

答案 0 :(得分:1)

尝试使用可在优化选项中定义的可选输出功能'OutputFcn'。在每次迭代后调用此函数,并传递优化向量的当前值

options = optimset('OutputFcn',@ CustomOutputFcn)

function stop = CustomOutputFcn(x,optimValues,state)
stop = false;
% Store x to previously defined global variable XPreviousStep
global XPreviousStep
XPreviousStep = x;
end

现在您可以在约束函数中访问XPreviousStep。如果您不喜欢全局变量,可以使用guidata。