benfifi 发表于 2013-8-12 16:51

A=[91.45        9.8        0        0        8.125
89.98        7        5        0        7.1875
82.73        10        5        2        8.75
76.82        5        8        0        6.25
76.91        7.6        10        0        9.375
85.22        10        0        6        7.5
80.68        5.5        8        0        8.125
84.59        3        0        0        4.6875
86.05        9.5        5        3        4.375
83.89        10        0        0        5.3125
81.43        1        8        0        7.5
87.15        0.5        0        0        5.625
73.22        1        0        0        3.75
92.82        10        5        4        9.0625];
=size(A);
B=zeros(1,na);
P=zeros(1,na);
G=zeros(1,na);
S=zeros(1,ma);
g=0;
a=0.5;
MAX=max(A);
MIN=min(A);
for i=1:ma     
    for j=1:na      
        A(i,j)=((A(i,j)-MIN(j))/(MAX(j)-MIN(j)))*a+(1-a);   %标准化矩阵A
    end
end
for j=1:na     
    for i=1:ma     
        B(j)=B(j)+A(i,j);
    end
end
for i=1:ma  
    for j=1:na   
        A(i,j)=A(i,j)/B(j)
    end
end
for j=1:na
    for i=1:ma
        P(j)=P(j)+A(i,j)*log(A(i,j));
    end
end
k=1/log(na);
P=P*(-k)
for j=1:na   
    G(j)=1-P(j)
    g=g+G(j);
end
for j=1:na  
    b(j)=G(j)/g
end
for i=1:ma
    for j=1:na
        S(i)=b(j)*A(i,j)
    end
end
        




Reciprocal 发表于 2014-8-24 08:51

谢谢了楼主

逻辑学 发表于 2014-9-3 10:52

商权法是用来做排序的
页: 1 [2]
查看完整版本: 求熵值法matlab程序!!!