MATLAB代码v2.0
% % V 原始评价指标矩
% % v_ij 第i个地区第j个指标的初始值
% % r_ij 第i个地区第j个指标的标准化值
% % R 标准化后的评价矩阵
% % m 统计地区总个数
% % n 已给指标个数
% % Y^+ 正理想解
% % Y^- 负理想解
% % D_j^+ 第i个指标与y_i^+的距离
% % D_j^- 第i个指标与y_i^-的距离
% % H_i 信息熵
% % f_ij 指标的特征比重
% % w_i 权值表
% % Y 加权规范化评价矩阵
% % T_j 第j项经济指标接近最优值的程度
%% 第一步:把数据复制到工作区,并将这个矩阵命名为X
clear;clc
load jingjizhibiao.mat;
[n,m] = size(V);
disp([‘共有‘ num2str(n) ‘个地区, ‘ num2str(m) ‘个经济指标‘]) ;
R = V./ repmat(sum(V.*V) .^ 0.5, n, 1);
disp(‘R的值为 R = ‘)
R
%% 第二步:熵权法赋权
%%计算第j个指标下,第i个样本占该指标的比重p(i,j)
for i=1:n
for j=1:m
p(i,j)=R(i,j)/sum(R(:,j));
end
end
%%计算第j个指标的熵值e(j)
k=1/log(n);
for j=1:m
e(j)=-k*sum(p(:,j).*log(p(:,j)));
end
H=ones(1,m)-e; %计算信息熵冗余度
w=H./sum(H); %求权值w
disp(‘最后的权重为 ; w =‘)
w
Y=V.* repmat(w,n,1);%%每个元数据乘以对应指标的熵权值,
disp(‘加入熵权的矩阵 Y = ‘);
disp(Y);
clear i j;%%释放无关变量
% % Z = B ./ repmat(sum(B.*B) .^ 0.5, n, 1);
% % disp(‘标准化矩阵 Z = ‘)
% % disp(Z)
%% 第三步 计算与最大值的距离和最小值的距离,并算出得分,(topsis分析)
Dist_max = sum([(Y - repmat(max(Y),n,1)) .^ 2 ],2) .^ 0.5; % D+ 与最大值的距离向量
Dist_min = sum([(Y - repmat(min(Y),n,1)) .^ 2 ],2) .^ 0.5; % D- 与最小值的距离向量
disp(‘D + 为‘)
Dist_max
disp(‘D - 为‘)
Dist_min
T = Dist_min ./ (Dist_max+Dist_min); % 未归一化的得分
disp(‘最后的得分为:‘)
stand_S = T / sum(T)
[sorted_S,index] = sort(stand_S ,‘descend‘)MATLAB2/02019.12.1 19.26
相关推荐
wanff0 2020-06-14
faustcao 2020-06-12
Canethui 2020-05-30
GerwelsJI 2020-05-07
xiaoxue 2020-05-02
wanff0 2020-03-03
Canethui 2020-02-22
wanff0 2020-02-01
Canethui 2020-01-28
cuiguanjun 2020-01-23
xiaoxue 2020-01-03
wanff0 2019-10-29
逍遥友 2019-04-26
algorithmlixuan 2014-07-22
zhangziyou 2019-06-27
booksyhay 2019-06-20
zupzng 2019-01-03
xiaoxue 2017-04-13