其他相同数据矩阵都没问题,但这个数据放进去就不行,希望解答

X=[1026.2  1521.2  1433.1  1543.3  2123.6  2046.5  2077.5  2095.3  2135.5  2605.31  2670.44;
   305884  304029  293912  243019  275895  289603  291791  286719  242689   245802  274703;
   152135  154344  156965    163045  174492  179200  184553     188431  191693   193252  196983]; 
Y=[1357.8  1514.9    1773.3  2207.8  2291.5  2333.5    2399.3  2410.3  2541.9   2606.5  2916;    
   123065  156596  189799  219130.3  198009  209946  198024  210586  228854  249323  243445;
   15306.9  18003.6  21384.7  23077.5  24259.6  25208.9  26398.4  28474.1  30604.8  32394.6  34978.6];                                  

n=size(X',1);m=size(X,1);s=size(Y,1);      
A=[-X' Y'];b=zeros(11,1);
LB=zeros(6,1);UB=[];
for i=1:11
    Aeq =[X(:,i)',zeros(1,3)];beq=1;
    f=[zeros(1,3),-Y(:,i)'];
    w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);  
    Eii=Y(:,i)'*w(4:6,i);     
     for k=1:11                      
         f=[zeros(1,3) Y(:,k)'];
         Aeq=[X(:,k)',zeros(1,3)
             Eii*X(:,i)',-Y(:,i)'];   
         beq=[1
             0];   
         v=linprog(f,A,b,Aeq,beq,LB,UB);
         E(i,k)=(Y(:,k)'*v(4:6))/(X(:,k)'*v(1:3));
     end
 end
E                                 
mean(E)
[Y I]=sort(mean(E));               
fliplr(I) 

索引超出数组元素的数目(0),
E(i,k)=(Y(:,k)'*v(4:6))/(X(:,k)'*v(1:3));

同学你好,你的程序运行到出错的一步的时候,显示第22行linprog求解没有可行域,即解出来的是空解v=[],这个时候在23行强制索引v(4:6)和v(1:3)自然会报错说“索引超出数组元素的数目(0)”,因为这个时候的v的长度是0。所以建议当v=[]的时候,把v设置成全部都是NaN的形式,就可以继续进行求解了。修改后的代码如下:

X=[1026.2  1521.2  1433.1  1543.3  2123.6  2046.5  2077.5  2095.3  2135.5  2605.31  2670.44;
   305884  304029  293912  243019  275895  289603  291791  286719  242689   245802  274703;
   152135  154344  156965    163045  174492  179200  184553     188431  191693   193252  196983]; 
Y=[1357.8  1514.9    1773.3  2207.8  2291.5  2333.5    2399.3  2410.3  2541.9   2606.5  2916;    
   123065  156596  189799  219130.3  198009  209946  198024  210586  228854  249323  243445;
   15306.9  18003.6  21384.7  23077.5  24259.6  25208.9  26398.4  28474.1  30604.8  32394.6  34978.6];                                  
n=size(X',1);m=size(X,1);s=size(Y,1);      
A=[-X' Y'];b=zeros(11,1);
LB=zeros(6,1);UB=[];
for i=1:11
    Aeq =[X(:,i)',zeros(1,3)];beq=1;
    f=[zeros(1,3),-Y(:,i)'];
    w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);  
    Eii=Y(:,i)'*w(4:6,i);     
     for k=1:11                      
         f=[zeros(1,3) Y(:,k)'];
         Aeq=[X(:,k)',zeros(1,3)
             Eii*X(:,i)',-Y(:,i)'];   
         beq=[1
             0];   
         v=linprog(f,A,b,Aeq,beq,LB,UB); % 当函数返回的值为空的时候,没有可行域,说明线性规划没有解,即v为空
         if(isempty(v)) % v的值为空的时候,自动用NaN填充
             v = NaN(6,1);
         end
         E(i,k)=(Y(:,k)'*v(4:6))/(X(:,k)'*v(1:3)); % 当v为空的时候自然v(4:6)和v(1:3)不存在,即超出索引
     end
 end
E                                 
mean(E)
[Y I]=sort(mean(E));               
fliplr(I) 

可见求解会顺利进行下去,没有解的地方都会标记成NaN。
如有帮助,还望题主给个采纳支持一下答主答题哟,谢谢啦(づ ̄3 ̄)づ╭❤~