matlab:fmincon,将变量传递给nonlcon

时间:2012-11-30 08:39:03

标签: function matlab variables octave minimize

我知道这是一个愚蠢的问题,但我不知道如何解决它...让我说我有类似的东西:

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

谢谢:)

1 个答案:

答案 0 :(得分:3)

您将mycon作为匿名函数传递:

   x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@(xx)mycon(xx,variable))

请注意,variable在调用fmincon行时已得到修复。