More detailed output function in optimization

1 回表示 (過去 30 日間)
Mohammad Shojaei Arani
Mohammad Shojaei Arani 2022 年 8 月 2 日
Hello,
I think I have a simple question but found it difficult to fix it myself.
In doing the optimization we can have 'our' output function. The following represents roughly my code and my output function:
Extra_param = A number;
options=optimoptions('fmincon','OutputFcn',@myoutput,'StepTolerance',10^(-8));
fmincon(cost,x0,[],[],[],[],lb,ub,[],options);
function stop = myoutput(x,optimvalues,state);
stop = false;
if isequal(state,'iter')
disp(num2str(x));
end
end
I would like the output function to dsplay me another parameter called 'Extra_param' which is not related to the optimum values or optimum state. It is just an extra parameter (and has nothing to do with the optimization problem being solved). so, I would like something like bellow:
function stop = myoutput(x,optimvalues,state,Extra_param);
stop = false;
if isequal(state,'iter')
disp(num2str(x));
disp(num2str(Extra_param));
end
end
But, unfortunately I get the following error message:
Unrecognized function or variable 'Extra_param'.
  2 件のコメント
Walter Roberson
Walter Roberson 2022 年 8 月 2 日
@myoutput
should become
@(x,op,st)myoutput(x,op,st,Extra_param)
This assumes that the value is known before you start optimization
Mohammad Shojaei Arani
Mohammad Shojaei Arani 2022 年 8 月 2 日
Yes Walter. Great!
Thanks man!

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeProblem-Based Optimization Setup についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by