質問: @gatry; lb=[0.1358 0.0997 -0.7927 -0.3667 -0.4854 -0.2115 -0.2137 -0.2013 -0.2418 -0.2096 -0.2701 -0.2798 -0.2188 -0.2144 -0.2045 -0.200005]; ub=[0.5358 0.4997 -0.3927 0.1667 -0.2854 0.2115 0.2137 0.2013 0.2418 0.2096 0.2701 0.2798 0.2188 0.2144 0.2045 0.200005]; a=[]; b=[]; aeq=[]; beq=[]; nonliner=[]; options=optimoptions('ga','populationsize',24,'generations',40,'display','iter','elitecount',1,'plotfcns',{@gaplotbestf},'useparallel',true); [x,y]=ga(objectivefunction,16,a,b,aeq,beq,lb,ub,nonliner,constraintfunction,options);
回答: 回答がついていないようなので・・・ x = ga(fun,nvars,a,b,aeq,beq,lb,ub,nonlcon,intcon,options) の構文で、intconに関数を与えていることが原因です。 制約をかけるならnonlconに関数を与えてください。 hth