熵权法客观权重matlab代码
时间: 2023-09-27 21:08:46 浏览: 78
熵权法matlab代码
5星 · 资源好评率100%
以下是熵权法的 MATLAB 代码:
```matlab
function [w] = EntropyWeight(x)
% 输入参数x为n*m的决策矩阵,其中n为样本数,m为决策指标数
% 输出参数w为m*1的决策指标权重向量
% 归一化决策矩阵
[n, m] = size(x);
y = zeros(n, m);
for j = 1:m
y(:, j) = x(:, j) ./ sum(x(:, j));
end
% 计算熵值
e = zeros(1, m);
for j = 1:m
p = y(:, j) / sum(y(:, j));
e(j) = -sum(p .* log(p));
end
% 计算信息熵权重
w = (1 - e) / sum(1 - e);
end
```
使用方法:
将决策矩阵作为函数输入参数,即可得到对应的决策指标权重向量。例如,假设决策矩阵为`x=[1,2,3;4,5,6;7,8,9]`,则调用`EntropyWeight(x)`即可得到对应的决策指标权重向量`w`。
阅读全文