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