全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅
3045 4
2015-04-04
悬赏 300 个论坛币 未解决
我最近在写毕业论文,参考了利用MATLAB进行DEA交叉评价分析 《西南民族大学学报:自然科学版》用里面的方法加上后面给的数据测试了下,如下
>> clear
>> X=[30 60 55 40 70;25 40 70 30 90;130 150 120 70 180];
>> Y=[35 43 76 52 63;60 80 53 42 71];
>> 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;
f=[zeros(1,m) -Y(:,i)'];
Aeq=[X(:,i)' zeros(1,s)];
beq=1;
w(:,i)=LINPROG(f,A,b,Aeq,beq,LB,UB);
E(i,i)=Y(:,i)'*w(m+1:m+s,i);
for k=1:n;
f=[zeros(1,m) Y(:,k)'];
Aeq=[X(:,k)' zeros(1,s) E(i,i)*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


但是出现错误,
Optimization terminated.
??? Error using ==> linprog
The number of rows in Aeq must be the same as the length of beq.

我对MATLAB本身一窍不通,是我输入的时候什么地方输错了吗,求大神指教!!万分感谢!


二维码

扫码加我 拉你入群

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

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

全部回复
2015-4-4 23:11:27
男生还是女生?女生就帮看下哈
二维码

扫码加我 拉你入群

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

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

2015-4-4 23:20:15
for i=1:n;
f=[zeros(1,m) -Y(:,i)'];
Aeq=[X(:,i)' zeros(1,s)];
beq=1;
w(:,i)= linprog(f,A,b,Aeq,beq,LB,UB);
E(i,i)=Y(:,i)'*w(m+1:m+s,i);
for k=1:n;
f=[zeros(1,m) Y(:,k)'];
Aeq=[X(:,k)' zeros(1,s)
E(i,i)*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
二维码

扫码加我 拉你入群

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

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

2015-4-4 23:22:27
也就是在上面红字那行 要是一个2*(m+s)矩阵,也可以写成
Aeq=[X(:,k)' zeros(1,s); E(i,i)*X(:,i)' -Y(:,i)'];
不过这样的代码可读性太差 建议矩阵就写成数学书上矩阵的形式
二维码

扫码加我 拉你入群

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

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

2015-4-4 23:33:19
ps:我的matlab版本LINPROG不行,所以用的linprog,你根据你的需要修改
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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