MATLAB中计算熵权的daima
时间: 2023-08-02 13:09:31 浏览: 82
熵权 MATLAB
以下是MATLAB中计算熵权的代码:
```matlab
function W = entropy_weight(A)
% A为n*m的矩阵,其中n为样本数,m为指标数
% 计算熵权,返回权重向量W
% 计算每个指标的熵值
[n, m] = size(A);
E = zeros(1, m);
for j = 1:m
p = A(:, j) / sum(A(:, j));
E(j) = -sum(p .* log(p));
end
% 计算每个指标的权重
W = (1 - E) / sum(1 - E);
end
```
使用方法:
假设有一个3个指标,4个样本的数据矩阵A,可以通过以下代码计算熵权:
```matlab
A = rand(4, 3); % 生成随机数据
W = entropy_weight(A); % 计算熵权
```
其中,W即为计算得到的熵权向量。
阅读全文