clear;
clc;
disp('请在弹出的文件data_entropy.xls中,选择评价指标的指示值')
L=xlsread('data_entropy.xls',-1);
disp('请在弹出的文件data_entropy.xls中,选择评价方案的指标值')
X=xlsread('data_entropy.xls',-1);
[m,n]=size(X);
R=zeros(m,n);
for i=1:m
for j=1:n
if L(j)==1
R(i,j)=(X(i,j)-min(X(:,j)))/(max(X(:,j))-min(X(:,j)));
else
R(i,j)=(max(X(:,j))-X(i,j))/(max(X(:,j))-min(X(:,j)));
end
end
end
sumR=sum(R);
p=zeros(m,n);
for i=1:m
for j=1:n
p(i,j)=R(i,j)/sumR(j);
end
end
tp=zeros(m,n);
for i=1:m
for j=1:n
if p(i,j)<=0
tp(i,j)=0;
else
tp(i,j)=p(i,j)*log(p(i,j));
end
end
end
H=-sum(tp);
E=H/log(m);
G=1-E;
W=G/sum(G);
评论0