熵权Topsis 代码 matlab
时间: 2023-07-16 08:16:28 浏览: 166
以下是熵权TOPSIS的MATLAB代码示例:
```matlab
%输入数据矩阵
x = [1 2 3 4; 5 6 7 8; 9 10 11 12];
%标准化矩阵
[n,m] = size(x);
for j=1:m
s(j) = sqrt(sum(x(:,j).^2));
for i=1:n
x_norm(i,j) = x(i,j)/s(j);
end
end
%确定权重
w = [0.3 0.2 0.3 0.2];
%计算加权标准化矩阵
for j=1:m
for i=1:n
x_weighted(i,j) = w(j)*x_norm(i,j);
end
end
%计算正理想解和负理想解
for j=1:m
if j==1
v_pos(j) = max(x_weighted(:,j));
v_neg(j) = min(x_weighted(:,j));
else
v_pos(j) = min(x_weighted(:,j));
v_neg(j) = max(x_weighted(:,j));
end
end
%计算距离
for i=1:n
d_pos(i) = sqrt(sum((x_weighted(i,:)-v_pos).^2));
d_neg(i) = sqrt(sum((x_weighted(i,:)-v_neg).^2));
end
%计算综合评价指数
for i=1:n
CI(i) = d_neg(i)/(d_neg(i)+d_pos(i));
end
%计算熵权
p = sum(x_norm.^2)/n;
e = -sum(p.*log(p));
w_e = (1-e)/(m-e);
%计算加熵权后的综合评价指数
CI_weighted = CI*w_e;
```
注意:这只是一个示例代码,实际使用时可能需要根据具体的数据和权重进行调整。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)