function f=myfuns(x)
f(1)=x(1)/1231.2;
f(2)=x(2)/4331.3;
f(3)=x(3)/4051.2;
f(4)=x(4)/1039.3;
f(5)=x(5)/1039.3;
f(6)=x(6)/2786.8;
f(7)=x(7)/402.8;
f(8)=x(8)/402.8;
f(9)=x(9)/3730.9;
f(10)=x(10)/1104.2;
f(11)=x(11)/4072.3;
f(12)=x(12)/1231.2;
f(13)=x(13)/1904.0;
f(14)=x(14)/2837.1;
f(15)=x(15)/2442.8;
f(16)=x(16)/1500.8;
f(17)=x(17)/1500.8;
f(18)=x(18)/2059.2;
f(19)=x(19)/972.4;
f(20)=x(20)/972.4;
f(21)=x(21)/2442.8;
f(22)=x(22)/1511.5;
f(23)=x(23)/2455.2;
f(24)=x(24)/1904.0;
f(25)=x(1)/1231.2+x(2)/4331.3+x(3)/4051.2+x(4)/1039.3+x(5)/1039.3+x(6)/2786.8+x(7)/402.8+x(8)/402.8+x(9)/3730.9+x(10)/1104.2+x(11)/4072.3+x(12)/1231.2;
f(26)=x(13)/1904.0+x(14)/2837.1+x(15)/2442.8+x(16)/1500.8+x(17)/1500.8+x(18)/2059.2+x(19)/972.4+x(20)/972.4+x(21)/2442.8+x(22)/1511.5+x(23)/2455.2+x(24)/1904.0;
f(27)=-(0.45*(x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8)+x(9)+x(10)+x(11)+x(12))+0.55*(x(13)+x(14)+x(15)+x(16)+x(17)+x(18)+x(19)+x(20)+x(21)+x(22)+x(23)+x(24)));
goal=[1231.2 4331.3 4051.2 1039.3 1039.3 2786.8 402.8 402.8 3730.9 1104.2 4072.3 1231.2 1904.0 2837.1 2442.8 1500.8 1500.8 2059.2 972.4 972.4 2442.8 1511.5 2455.2 1904.0 0 0 37786.9 ];
weight=[1231.2 4331.3 4051.2 1039.3 1039.3 2786.8 402.8 402.8 3730.9 1104.2 4072.3 1231.2 1904.0 2837.1 2442.8 1500.8 1500.8 2059.2 972.4 972.4 2442.8 1511.5 2455.2 1904.0 0 0 37786.9 ];
x0=[1231.2 4331.3 4051.2 1039.3 1039.3 2786.8 402.8 402.8 3730.9 1104.2 4072.3 1231.2 1904.0 2837.1 2442.8 1500.8 1500.8 2059.2 972.4 972.4 2442.8 1511.5 2455.2 1904.0 0 0 37786.9];
%给出约束条件的系数
A=[1231.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
0 1/4331.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 1/4051.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 1/1039.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 1/1039.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 1/2786.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 1/402.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 1/402.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 1/3730.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 1/1104.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 1/4072.3 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 1/1231.2 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 1/1904.0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 1/2837.1 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/2442.8 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/1500.8 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/1500.8 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/2059.2 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/972.4 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/972.4 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/2442.8 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/1511.5 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/2455.2 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1/1904.0];
b=[0.6; 0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6;0.6]
Aeq=[1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0;
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0;
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0;
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0;
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0;
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0;
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0;
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0;
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1]
beq=[3027.9; 2931.6; 3181.5; 3197.0; 3197.0; 3204.8; 3223.3; 3223.3; 3203.8; 3212.6; 3025.9; 3158.1]
lb=zeros(24,1);
options=optimset('Display','iter' )
[x,fval,attainfactor]=fgoalattain(@myfuns,x0,goal,weight,A,b,Aeq,beq,lb,[],[],options)
提错信息:??? Error using ==> fgoalattain
Aeq has the wrong number of columns.
求助