reverse the output order of the constraint function argument of fmincon

1 次查看(过去 30 天)
I frequently use fmincon to solve for a bunch of equality constraints, but my problems have no inequality constraints. My equality constraints are typically defined as an anonymous function in the workspace that calls fmincon, e.g.,
f = @(x,b) a*x + b
It would be so much more convenient if I could simply pass f as an argument to fmincon, e.g.,
soln = fmincon(obj,x,[],[],[],[],[],[],@(x) f(a,b))
but because fmincon expects equality constraints in the second argument, I have to write a separate nested function with two output variables, and all of the data to that extra function. Is there a workaround for this? I can think of two ways it could be done: easiest would be for matlab to provide a field of the fmincon options struct that reversed the output arguments of the constraint function. Alternatively, is there a way to write an anonymous function with two output arguments? Thanks!

采纳的回答

Walter Roberson
Walter Roberson 2018-4-2
@(x) deal([], f(x, b))

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Nonlinear Optimization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by