已有命令如下:
[m,n]=size(X); %m为对象个数,n为指标个数
%初始数据矩阵标准化
%第一到n列为正向指标,其他全为负向指标
X1=[];
for j=1:n
X2=(X(:,j)-min(X(:,j)))./(max(X(:,j))-min(X(:,j)))
X1=[X1,X2];
end
%计算比重矩阵Y
S=sum(X1);
Y=X1./repmat(S,m,1)
%计算各指标的信息熵的值
K=1/log(m);
for i =1:m
for j=1:n
if Y(i,j)==0
lnY(i,j)=0;
else
lnY(i,j)=log(Y(i,j));
end
end
end
E=-K*(sum(Y.*lnY))
%计算各指标的差异系数
D=1-E
%计算各指标的权重
W=D/sum(D)



雷达卡


京公网安备 11010802022788号







