“ 灰色关联度方法基本原理与技术实践”

灰色关联度基本原理

灰色关联度计算Matlab函数

function gamma=GreyRelationDegree(X) %X是一个m×n的评价矩阵,即m个评价对象、n个评价指标%gamma是n*n的灰色关联度矩阵maxX=max(X,[],1);minX=min(X,[],1);[m,n]=size(X);for j=1:m for i=1:n X(j,i)= (X(j,i)-minX(i))/(maxX(i)-minX(i)); endend%计算变量i和j的差值绝对值Δijfor l=1:m for i=1:n for j=1:n delta(i,j,l)=abs(X(l,i)-X(l,j)); end endendmaxDelta = max(max(delta,[],1));minDelta = min(min(delta,[],1));%计算变量i和j的关联系数εijk=1; %取灰度白化值为k=1for l=1:m for i=1:n for j=1:n epsilon(i,j,l)=(minDelta(l)+k*maxDelta(l))/(delta(i,j,l)+k*maxDelta(l)); end endend%变量Xj对变量Xi的关联度γij=Sij/SiiSii=m;for i=1:n for j=1:n gamma(i,j)=0; for l=1:m gamma(i,j)=gamma(i,j)+epsilon(i,j,l); end gamma(i,j)=gamma(i,j)/Sii; endendend

灰色关联度算例

测试数据集csv:

数据集导入至Matlab存为矩阵:

使用GreyRelationDegree函数计算变量之间的灰色关联度矩阵:

代码随便使用,不用授权,心存感激即可~~~