当前位置:   article > 正文

熵权法Matlab代码

熵权法matlab代码

Entropy_Method

function [W] = Entropy Method(Z)

%计算有n个样本,m个指标的样本所对应的的熵权

%输入

%Z: n*m的矩阵(要经过正向化和标准化处理,且元素中不存在负

%输出

% W:熵权,m1的行向量

%%计算熵权

[n,m] = size(Z);

D = zeros(1,m); %初始化保存信息效用值的行向量

for i = 1:m

x = Z(1,m) %取出第列的指标

p = x / sum(x);

%注意,p有可能为0,此时计算In(p)*p时, Matlab会返回NaN,所以这里我们自己定义一个函数

e = -sum(p * mylog(p)) / log(n); %计算信息熵

D(i)= 1- e; %计算信息效用值

end

W= D / sum(D); %将信息效用值归一化,得到权重

end

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/70068?site
推荐阅读
相关标签
  

闽ICP备14008679号