sponsored links

matlab灰色关联分析

灰色系统理论由我国著名学者邓聚龙教授于1982提出。灰色关联分析是灰色系统理论的一个分支,应用灰色关联分析方法对受多种因素影响的事物和现象从整体观念出发进行综合评价是一个被广为接受的方法。

引一小段灰色关联分析代码,没有解释。

%在归一化之前要注意因素变化产生的是正影响还是负影响
clc
clear
close all
y=[ 102.4   102.8   103.1   102.9   103.3   103.5   103.6   104.4   105.1   104.6   104.9   104.9   105.4
105.2   105.9   106.1   105.7   106.8   107.5   108 110.1   117.1   109.6   110.3   111 111.7
101.7   101.7   101.7   101.7   101.6   101.5   101.4   101.5   101.6   101.8   101.8   101.9   102.1
98.9    98.7    98.8    99  99.2    98.8    98.5    98.7    99.3    100.1   99.8    100.4   100.8
99.3    99.5    99.7    100 100.2   100.4   100.4   100.5   100.7   101.2   101.4   101.4   101.9
102.5   102.8   103.2   103.2   103.3   103.3   103.4   103.7   104 104 103.2   103 103.2
100 100 100.1   99.7    99.3    99.4    99.3    99.5    99.3    99.3    99.9    99.7    100.1
100.3   100.4   100.6   100.9   101.1   101.2   101.2   100.9   100.6   100.7   101 100.3   100.5
100.3   104.5   105 105 104.8   104.4   104.3   104.9   105.8   106 106.8   106.1   106.6];%每一行为一项指标,每一列为一年的所有指标
[m,n]=size(y);
y1=mean(y');%对每一项指标求均值
y1=y1';%转置为一列
for i=1:m
    for j=1:n
        y2(i,j)=y(i,j)/y1(i);
    end
end   %均值化变换
for i=2:m
    for j=1:n
        y3(i-1,j)=abs(y2(i,j)-y2((i-1) ,j));
    end
end   %差序列,其中元素均大于0小于1
a=1;b=0;
for i=1:m-1
       for j=1:n
            if(y3(i,j)<=a)
                a=y3(i,j);%a为最小值
                elseif(y3(i,j)>=b)
                    b=y3(i,j);%b为最大值
            end
        end
end
for i=1:m-1
    for j=1:n
            y4(i,j)=(a+0.5*b)/(y3(i,j)+0.5*b);
    end
end
y5=sum(y4')/(n-1)
%% 说明输入一个矩阵,给出其第一行和下面每一行的关联性
Tags: