该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
N0=(reshape(n0',1,180))';
a1=zeros(10,180);
a1(1,1:18)=1;a1(2,19:36)=1;a1(3,37:54)=1;a1(4,55:72)=1;a1(5,73:90)=1;a1(6,91:108)=1;a1(1,109:26)=1;
a1(1,127:144)=1;a1(1,145:162)=1;a1(1,163:180)=1;
A1=a1;B1=[20000,15000,19000,18000,19800,18700,18000,19000,17000,80000]';
Aeq=[eye(18),eye(18),eye(18),eye(18),eye(18),eye(18),eye(18),eye(18),eye(18),eye(18)];
Beq=[0,0,0,750,900,1050,0,1220,1800,700,1000,0,1350,1150,1920,1000,1560,1180]';
VLB=zeros(180,1);
ll=(reshape(l',180,1)); options=optimoptions('fmincon','MaxIter',400000);
[n,W,exitflag]=ga(@(n)sum(ll.*n*0.5),180,A1,B1,Aeq,Beq,VLB,[])
这是我的代码,自变量是180维的列向量,但总是提示这个错误,
错误使用 makeState (line 56)
Your fitness function must return a scalar value.
出错 galincon (line 17)
state = makeState(GenomeLength,FitnessFcn,Iterate,output.problemtype,options);
出错 ga (line 401)
[x,fval,exitFlag,output,population,scores] = galincon(FitnessFcn,nvars, ...
出错 qiji (line 10)
[n,W,exitflag]=ga(@(n)sum(ll.*n*0.5),180,A1,B1,Aeq,Beq,VLB,[])
好像是说目标函数必须返回一个标量,但我的目标函数就是标量的呀,
求大佬指点一下是哪里出了问题,感激不尽