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 に答える