全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
16135 2
2009-04-01

clear

X=[69120,72451,19981,51736,3945.6,5200,3202.1,3111.5,3427.7,77767,2702.5,4418.6,2462.4;43899,42108,11430,45724,3830.1,5000,3110.2,4002.4,2403.8,55296,2090.9,3368.3,2080.4;686752.4202,312686.7847,65927.73,82981.4293,22250.3084,9418.5,2724.7158,35126.52984,6223.52933,670491.732,3844.50522,6291.65376,11231.38031;41597,35348,9727,39251,4360,3866,3624,3263,2547,64297,2569,3895,1817];

Y=[3356047,3751434,907839,3369861,381087.2,475600,351217.8,295883,238201.5,5096085,253000.2,359045.8,185413.1;2239897,1921861,516675,1943359,238226,299000,201830.8,191738.7,147827.3,2766055,156280.7,249668.8,127195.7;61758,76597,19674,90939,6800.3,10200,6148.6,4442.6,5044.6,122708,5120.3,8046.2,3449.3;4959,15511,2266,6713,411.1,700,199.9,-183.8,346.6,10076,189.7,521.1,198.7];

n=size(X',1);m=size(X,1);s=size(Y,1);

A=[-X'  Y']; b=zeros(n,1);

LB=zeros(m+s,1);UB=[];

for i=1:n;

Aeq=[X(:,i)' zeros(1,s)];beq=1;

f=[zeros(1,m) -Y(:,i)'];

w(:,i)=LINPROG(f,A,b,Aeq,beq,LB,UB);

Eii=Y(:,i)'*w(m+1:m+s,i);

  for k=1:n;

     f=[zeros(1,m) Y(:,k)'];

     Aeq=[X(:,k)' zeros(1,s)

          Eii*X(:,i)' -Y(:,i)'];

     beq=[1

          0];

       v=LINPROG(f,A,b,Aeq,beq,LB,UB);

       E(i,k)=(Y(:,k)'*v(m+1:m+s))/(X(:,k)'*v(1:m));

 end

end

E

Mean(E)

[Y I]=sort(mean(E));

fliplr(I)

 

 

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2009-4-1 23:01:00

运行时出的错误如下:

Exiting: cannot converge because the primal residual, dual residual,
 or upper-bound feasibility is NaN.
??? Index exceeds matrix dimensions.

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-12-31 20:23:44
就是说,比如数组只有10个元素,而你访问它的第11个元素,就发生越权。
或者你的角标小于零,或小数之类的,都会出现这种问题。

不是说数组超出最大范围,当然MATLAB中,数组也有限制的,就是说一个数组最大只能是多少个字节。可以参看memory函数。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群