编写matlab的熵值法代码
时间: 2023-09-21 15:03:02 浏览: 87
熵权法.rar_求权重_熵_熵权法_熵权法代码
以下是一个简单的 MATLAB 熵值法代码示例:
```matlab
function [result, weight] = entropy(A)
% A:m x n 的矩阵,其中 m 是方案个数,n 是指标个数
% result:m x 1 的向量,表示各方案的得分
% weight:n x 1 的向量,表示各指标的权重
% 归一化决策矩阵
[m, n] = size(A);
A = A ./ repmat(sum(A, 1), m, 1);
% 计算熵值
E = -sum(A .* log(A), 1);
E = E / log(m);
% 计算权重
weight = (1 - E) / sum(1 - E);
% 计算各方案得分
result = A * weight';
```
使用方法:
1. 将上述代码保存为一个名为 `entropy.m` 的 MATLAB 函数文件;
2. 在 MATLAB 命令行窗口中输入 `help entropy` 可以查看函数的使用说明;
3. 在 MATLAB 中调用该函数,例如:
```matlab
A = [1 2 3; 4 5 6; 7 8 9];
[result, weight] = entropy(A);
```
其中,`A` 是一个 $3 \times 3$ 的决策矩阵,`result` 是各方案的得分,`weight` 是各指标的权重。
阅读全文