求问如何在matlab上面进行灰色相对关联度的计算。

如图我想计算b与c分别和a的灰色相对关联度

谈情伤感情 2021-09-18 16:36 398 次浏览 赞 91

最新问答

  • 辣椒与泡菜~

    function f=grayrelated(X,Y)
    %这里X是标准化后的参考序列,Y是评价矩阵
    Y=[
    71.8 90.1 0.57 0.45 0
    51 40.2 0.38 0.55 10.5
    52 25 0.22 0.52 12
    68 90 0.38 0.38 21
    28 40 0.32 0.3 18.5
    51 45 0.15 0.3 5
    76 95 0.7 0.55 12
    87 95 0.7 0.5 9.8
    76 90 0.57 0.5 11
    50 35 0.32 0.35 20
    68 90 0.57 0.35 18.5
    82 95 0.7 0.35 0
    100 200 1 1 0
    97.5 180 0.94 0.95 1.3
    95 160 0.88 0.9 2.5
    86.3 105 0.68 0.75 6.3
    82.5 90 0.6 0.7 7.5
    78.8 75 0.53 0.65 8.8
    75 60 0.45 0.7 7.5
    68.8 52.5 0.41 0.55 13.8
    62.5 45 0.38 0.5 17.5
    56.3 37.5 0.34 0.45 21.3
    43.8 26.3 0.28 0.35 50.6
    50 30 0.3 0.4 25
    37.5 22.5 0.25 0.3 75
    31.3 18.8 0.23 0.25 100
    18.8 11.3 0.15 0.15 168.8
    25 15 0.2 0.2 125
    12.5 7.5 0.1 0.1 212.5
    6.3 0.8 0.05 0.05 256.3

    ];%输入评价矩阵Y
    X=[1 1 1 1 1];%X为参考序列,均为1,个数就是指标个数,情形不同要修改个数
    Len=size(Y,2);%取Y矩阵的列数,也就是指标的个数
    Wen=size(Y,1);%取行数,就是目标个数
    %for i=1:Len
    %Y(:,i)=(Y(:,i)-mean(Y(:,i)))/sqrt(var(Y(:,i))); %将Y矩阵用统计方法标准化标准化,
    %end
    for i=1:Len-1
    S(:,i)=(Y(:,i)-min(Y(:,i)))./(max(Y(:,i))-min(Y(:,i)));%将Y矩阵标准化,适用于越大越好型,把该型指标放在一起,前n-1个,不同情形要修改
    D=(max(Y(:,5))-Y(:,5))./(max(Y(:,5))-min(Y(:,5))); %将Y矩阵标准化,适用于越小越好型,把该型指标放在一起,第n个,不同情形要修改
    end
    SD=[S,D];%把两种不同类型的指标组合在一起
    temp=SD;% 给temp变量分配空间,其实可以不分配,只是先分配编译的速度更快
    for i=1:Wen
    temp(i,:)=abs(SD(i,:)-X);%计算评价矩阵与参考序列的差的绝对值
    end
    p=0.5;%分辨系数
    related=Y;%给关联系数related变量分配空间
    Min=min(min(temp));
    Max=max(max(temp));
    for i=1:Wen
    related(i,:)=(Min+p*Max)./(temp(i,:)+p*Max);
    end
    f=size(1,Wen);%给关联度分配空间
    for i=1:Wen
    f(i)=mean(related(i,:));
    end
    %w=[1/Len 1/Len 1/Len 1/Len 1/Len] %若已知各指标权重,可在此修改
    %f=w*related'

    浏览 273赞 143时间 2022-09-14

求问如何在matlab上面进行灰色相对关联度的计算。

如图我想计算b与c分别和a的灰色相对关联度