MATLAB Coder Error - optimset Unrecognized parameter name: 'GradObj'
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Vadim Bertrand
el 9 de Jun. de 2021
Editada: Steve Grikschat
el 10 de Jun. de 2021
Hi,
I'm trying to generate C code of a function using MATLAB Coder but I am getting the following error when generating MEX:
Unrecognized parameter name: 'GradObj'
Full instruction is:
optionsNLP = optimset('GradObj', 'off', 'GradConstr', 'off', ...
'DerivativeCheck', 'off', 'Display', 'iter', 'TolX', 1e-9, ...
'TolFun', 1e-9, 'TolCon', 1e-9, 'MaxFunEval', 300, 'DiffMinChange', 1e-5);
It is working when I run the MATLAB script directly.
I am thinking that maybe it can not be generated because a Toolbox is required to use the GradObj parameter?
Does anyone knows a workaround if any?
Thanks.
Vadim
0 comentarios
Respuesta aceptada
Steve Grikschat
el 9 de Jun. de 2021
Editada: Steve Grikschat
el 10 de Jun. de 2021
Hi Vadim,
For generating C code for fmincon (or lsqnonlin, etc.) via MATLAB Coder, we require that you use the optimoptions function to set options. See the requirements in this documentation page.
Also, an important note is that only the SQP algorithm of fmincon is supported for C code generation.
The equivalent code for your example is as follows
optionsNLP = optimoptions('fmincon','Algorithm','sqp','SpecifyObjectiveGradient', false, ...
'CheckGradients', false, 'Display', 'iter', 'StepTolerance', 1e-9, 'FunctionTolerance', 1e-9, ...
'ConstraintTolerance', 1e-9, 'MaxFunctionEvaluations', 300, 'DiffMinChange', 1e-5);
3 comentarios
Steve Grikschat
el 10 de Jun. de 2021
Good catch! Thanks for pointing that out.
I guess I should have tried the new "Run" button on my answer. :)
Más respuestas (0)
Ver también
Categorías
Más información sobre MATLAB Coder en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!