为什么在Matlab中运行超效率DEA程序时会出现带有下标的赋值维度不匹配的问题?

为什么在Matlab中运行超效率DEA程序时会出现带有下标的赋值维度不匹配的问题?,第1张

在数据超过30个的情况时(题主给出的数据为36个),在 matlab2016a可以通过运行。运行部分结果

不知,题主用的是什么版本的matlab?

因不知你的具体方程,按我的经验,作了如下改动。

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

改成:Aeq=[]beq=[].

去掉:UB=[]

去掉:w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB)

改成:w(:,i)=linprog(f,A,b,Aeq,beq,LB)

修改后的代码:

X=[0,29,210,30,18]   %用户输入多指标输入矩阵X

Y=[50,15,1200,15,1]   %用户输入多指标输出矩阵Y

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

A=[-X'  Y']

b=zeros(n, 1)

LB=zeros(m+s,1)

for i=1:n

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

Aeq=[]beq=[]

w(:,i)=linprog(f,A,b,Aeq,beq,LB)   %解线性规划,得DMU的最佳权向量w

E(i, i)=Y(:,i)'*w(m+1:m+s,i)   %求出DMUi的相对效率值Eii

end

w    %输出最佳权向量

E    %输出相对效率值Eii

Omega=w(1:m,:)    %输出投入权向量。

mu=w(m+1:m+s,:)    %输出产出权向量。

运行结果


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7823688.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存