2

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

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

谢谢 :)

4

1 回答 1

3

mycon您作为匿名函数传递:

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

请注意,variable在调用该fmincon行时是固定的。

于 2012-11-30T08:46:00.990 回答