MATLAB_TOPSIS法和差分处理后 分析国内疫情进行评分变化

关于TOPSIS模型需要进行以下几步处理

1. 建立原始数据矩阵

2. 进行差分处理

3. 数据正向化

4. 数据的标准化

5. 确定指标最大得分

6. 归一化处理

7. 综合评定分

收集数据后,作成一个矩阵,是114行7列,下面是MATLAB代码分析。

%clc;clear
load DATA_X     %存储疫情数据
%1147列。
%请运行两遍脚本,第一遍按输入 1  第二遍输入 0
q=input('请输入1或0:\n 1.进行差分导入6列疫情变化数据(没有医学观察和境外输入死亡);\n 0.仅导入医学观察者:  ');
if q == 1			%进行差分处理
    X=X(1:114,[1 2 3 4 6 7]);  
    XXX(2:114,:)=X(1:113,:);    
    X=((X-XXX).^2).^0.5;    
else 
    X=X(:,5);   
end
[n,m] = size(X); 
disp(['此次疫情数据一共有' num2str(n) '个日期对象, ' num2str(m) '属性指标']) 

J = input([num2str(m) '个指标是不是要进行正向化,是就按1 ,不是则按0: ']);
if J == 1
    if q == 1
        X_weizhi = input('输入需要正向化处理的属性所在的列,比如第一步的第1、2、3、4、5、6六列需要正向化处理,\n那么你请输入[1,2,3,4,5,6] :'); 
    else
        X_weizhi = input('输入需要正向化处理的属性所在的列,比如第二步就1列需要正向化处理,\n那么你请输入[1] :');
    end
    if q==1
        disp('基于第一步的,第1、2、3、4、5、6列是极小型,所以这几列需要正向化处理:')
    else
        disp('基于第二步,仅仅一列医学观察人数是极小型')
    end
    %由于此建模题的属性指标都是极小型,所以我没有处理极大型和中间型的正向化
    disp('——————————分界线——————————')
    for i = 1 : size(X_weizhi,2) 
         X(:,X_weizhi(i))=P_zxh_chuli(X(:,X_weizhi(i)),X_weizhi(i)); 
         % X(:,P_weizhi(i)) 第一个参数是每一行 ,第二个调用P_weizhi矩阵第i的数字
         % P_weizhi(i) 用于记录每次运行到哪一列
    end
    else
        zxh = X ;
        disp('矩阵没有变化 矩阵 = :')
        disp(zxh);
end
     zxh = X ;
     disp('正向化完成的矩阵 =  ')
     disp(zxh)
disp('进行标准化处理')
bzh=zxh./sum(zxh.*zxh).^0.5;
disp('标准化处理完成的矩阵 = ')
disp(bzh)
disp('正在计算每个日期对象的得分 ......')
juli_max = sum((bzh - repmat(max(bzh),n,1)) .^ 2 ,2) .^ 0.5;     % 与最大值的距离向量
juli_min = sum((bzh - repmat(min(bzh),n,1)) .^ 2 ,2) .^ 0.5;     % 与最小值的距离向量
g = juli_min ./ (juli_max+juli_min);    	 % 没归一化的分数
disp('每一个日期对象的得分为 :')
gyh = g / sum(g);		% 进行归一化处理
disp(gyh)
if q==1
    zzz=gyh;
    plot(gyh)
else
    plot(gyh); hold on ;plot(zzz)
end

结果如下:

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值