• MATLAB代码v2.0


     1 % % V       原始评价指标矩
     2 % % v_ij    第i个地区第j个指标的初始值
     3 % % r_ij    第i个地区第j个指标的标准化值
     4 % % R       标准化后的评价矩阵
     5 % % m       统计地区总个数
     6 % % n       已给指标个数
     7 % % Y^+     正理想解
     8 % % Y^-     负理想解
     9 % % D_j^+    第i个指标与y_i^+的距离
    10 % % D_j^-    第i个指标与y_i^-的距离
    11 % % H_i     信息熵
    12 % % f_ij    指标的特征比重
    13 % % w_i     权值表
    14 % % Y       加权规范化评价矩阵
    15 % % T_j     第j项经济指标接近最优值的程度
    16 
    17 
    18 %%  第一步:把数据复制到工作区,并将这个矩阵命名为X
    19 clear;clc
    20 load jingjizhibiao.mat;
    21 
    22 [n,m] = size(V);
    23 disp(['共有' num2str(n) '个地区, ' num2str(m) '个经济指标']) ;
    24 R = V./ repmat(sum(V.*V) .^ 0.5, n, 1);
    25 disp('R的值为  R = ')
    26 R
    27 
    28 %% 第二步:熵权法赋权
    29 %%计算第j个指标下,第i个样本占该指标的比重p(i,j)
    30 for i=1:n
    31     for j=1:m
    32         p(i,j)=R(i,j)/sum(R(:,j));
    33     end
    34 end
    35 %%计算第j个指标的熵值e(j)
    36 k=1/log(n);
    37 for j=1:m
    38     e(j)=-k*sum(p(:,j).*log(p(:,j)));
    39 end
    40 H=ones(1,m)-e; %计算信息熵冗余度
    41 w=H./sum(H); %求权值w
    42 disp('最后的权重为 ; w =')
    43 w
    44 Y=V.* repmat(w,n,1);%%每个元数据乘以对应指标的熵权值,
    45 
    46 disp('加入熵权的矩阵 Y = ');
    47 disp(Y);
    48 
    49 clear i j;%%释放无关变量
    50 % % Z = B ./ repmat(sum(B.*B) .^ 0.5, n, 1);
    51 % % disp('标准化矩阵 Z = ')
    52 % % disp(Z)
    53 
    54 %% 第三步 计算与最大值的距离和最小值的距离,并算出得分,(topsis分析)
    55 
    56 Dist_max = sum([(Y - repmat(max(Y),n,1)) .^ 2 ],2) .^ 0.5;   % D+ 与最大值的距离向量
    57 Dist_min = sum([(Y - repmat(min(Y),n,1)) .^ 2 ],2) .^ 0.5;   % D- 与最小值的距离向量
    58 disp('D + 为')
    59 Dist_max
    60 
    61 disp('D - 为')
    62 Dist_min
    63 
    64 T = Dist_min ./ (Dist_max+Dist_min);    % 未归一化的得分
    65 disp('最后的得分为:')
    66 stand_S = T / sum(T)
    67 [sorted_S,index] = sort(stand_S ,'descend')

    
    

    MATLAB2/02019.12.1   19.26

  • 相关阅读:
    Spring依赖注入servlet会话监听器
    Maven常用命令
    页面获取Spring Security登录用户
    spring security:ajax请求的session超时处理
    前端用Request Payload方式请求后台
    记一次网易前端实习面试【转载】
    JavaScript函数内部修改全局变量的问题【一道面试题】
    Js作用域与作用域链详解
    js测试
    JavaScript 中对变量和函数声明的“提前(hoist)”
  • 原文地址:https://www.cnblogs.com/shewhen/p/11966921.html
Copyright © 2020-2023  润新知