我知道这是一个愚蠢的问题,但我不知道如何解决它...让我说我有类似的东西:
x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon)
以及后来:
function [c,ceq] = mycon(x)
c = ...
ceq = ...
如何将其他变量传递到@mycon
,例如
function [c,ceq] = mycon(x, variable)
if variable == 1
c = ...
ceq = ...
else
c = ...
ceq = ...
end
谢谢:)
答案 0 :(得分:3)
您将mycon
作为匿名函数传递:
x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@(xx)mycon(xx,variable))
请注意,variable
在调用fmincon
行时已得到修复。