• 基于topsis和熵权法


     1 % % X    数据矩阵
     2 % % n    数据矩阵行数即评价对象数目
     3 % % m    数据矩阵列数即经济指标数目
     4 % % B    乘以熵权的数据矩阵
     5 % % Dist_max    D+ 与最大值的距离向量
     6 % % Dist_min    D- 与最小值的距离向量
     7 % % e    熵值列表
     8 % % d    信息熵冗余度
     9 % % w    权值表
    10 % % stand_S    归一化矩阵
    11 % % sorted_S    按照降序排列的数据矩阵
    12 
    13 %%  第一步:把数据复制到工作区,并将这个矩阵命名为X
    14 clear;clc
    15 load jingjizhibiao.mat;
    16 
    17 [n,m] = size(X);
    18 disp(['共有' num2str(n) '个地区, ' num2str(m) '个经济指标']) ;
    19 
    20 
    21 %% 第二步:熵权法赋权
    22 %%计算第j个指标下,第i个样本占该指标的比重p(i,j)
    23 for i=1:n
    24     for j=1:m
    25         p(i,j)=X(i,j)/sum(X(:,j));
    26     end
    27 end
    28 %%计算第j个指标的熵值e(j)
    29 k=1/log(n);
    30 for j=1:m
    31     e(j)=-k*sum(p(:,j).*log(p(:,j)));
    32 end
    33 d=ones(1,m)-e; %计算信息熵冗余度
    34 w=d./sum(d); %求权值w
    35 disp('最后的权重为 ; w =')
    36 w
    37 B=X.* repmat(w,n,1);%%每个元数据乘以对应指标的熵权值,
    38 
    39 disp('加入熵权的矩阵 B = ');
    40 disp(B);
    41 
    42 clear i j;%%释放无关变量
    43 % % Z = B ./ repmat(sum(B.*B) .^ 0.5, n, 1);
    44 % % disp('标准化矩阵 Z = ')
    45 % % disp(Z)
    46 
    47 %% 第三步 计算与最大值的距离和最小值的距离,并算出得分,(topsis分析)
    48 
    49 Dist_max = sum([(B - repmat(max(B),n,1)) .^ 2 ],2) .^ 0.5;   % D+ 与最大值的距离向量
    50 Dist_min = sum([(B - repmat(min(B),n,1)) .^ 2 ],2) .^ 0.5;   % D- 与最小值的距离向量
    51 disp('D + 为')
    52 Dist_max
    53 
    54 disp('D - 为')
    55 Dist_min
    56 
    57 S = Dist_min ./ (Dist_max+Dist_min);    % 未归一化的得分
    58 disp('最后的得分为:')
    59 stand_S = S / sum(S)
    60 [sorted_S,index] = sort(stand_S ,'descend')

    matlab

  • 相关阅读:
    oracle无法使用sysdba的解决办法
    打开计算机管理的命令
    python 多进程详解(Multiprocessing模块)
    zabbix使用Percona数据库tokudb引擎
    python自定义异常类
    xml(打补丁)设置timestamp类型指定的默认值以及varchar2类型的默认值
    This inspection suggests to replace null check with Object/Stream static method
    后端Itext生成pdf到传到前端,支票打印A4纸
    easyexcel导入获取表头并且表头为不固定列
    9. 云停车(芊熠相机)
  • 原文地址:https://www.cnblogs.com/shewhen/p/11965199.html
Copyright © 2020-2023  润新知