www.gusucode.com > ​常见的三种灰关联分析matlab源码程序 > GRA1.m

    %计算两向量灰关联度 方式1
%完成时间:2014.5.27

function [gd] = GRA1(x,ma)
clear
clc
x=xlsread('资料','A2:A181');
ma=xlsread('资料','B2:J181');

grayCof = 0.5;
%初值象
sx = x ./ x(1,1);
[m,n] = size(ma);
sma = zeros(m,n);
for i = 1:n
    sma(:,i) = ma(:,i) ./ ma(1,i);
end

%灰关联系数
temp = zeros(m,n);
for i = 1:n
    temp(:,i) = abs( sma(:,i)-sx );
end
minmin = min(min(temp));
maxmax = max(max(temp));
graymat = (minmin + grayCof*maxmax)./(temp + grayCof*maxmax);

%灰关联度
gd = zeros(1,n);
for i=1:n
    gd(1,i) = mean(graymat(:,i));
end