How to suppress output from optimproblem solve?

I pulled code from the "Optimization" option in a Live Script into my own function to use for maximization.
The code works great, but I want to turn off the output because I am running the optimization problem and it is cluttering the output window.
I put the following modification to the code
% Define problem objective
problem.Objective = fcn2optimexpr(@func, vars, params, ...
"Display","off");
But I still receive the output message each time I run my function:
Solving problem using fmincon.
Local minimum found that satisfies the constraints.
Optimization completed because the objective function is non-decreasing in
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the value of the constraint tolerance.
<stopping criteria details>
How do I properly edit the code from the live script to suppress output?

 Accepted Answer

Matt J
Matt J on 6 May 2022
Edited: Matt J on 7 May 2022
That's controlled in the call to solve().
opts=optimoptions(@fmincon,'Display','off');
solution = solve(problem,x0, 'Options',opts); %EDITED

4 Comments

Thanks Matt. However, I'm receiving the following error when I put this in:
% Solve problem
opts=optimoptions(@fmincon,'Display','off');
solution = solve(problem,initialPoint2, opts);
Error using optim.internal.problemdef.ProblemImpl/solveImpl
The value of 'GlobalSolver' is invalid. GlobalSolver
must be a MultiStart or GlobalSearch object.
Error in optim.problemdef.OptimizationProblem/solve
We will need to see more about how you initialzied your variable problem
opts=optimoptions(@fmincon,'Display','off');
solution = solve(problem,initialPoint2, 'Options',opts);
@Matt J thank you! This works great, and helps clear up clutter.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!