全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1812 1
2016-03-16
A=[4.15        1.54        0.0448        0.1118        0.899        0.1005        0.0038        0.3378        0.6875        0.8972        0.0021        7913        66.12        0.0016        0.1317        68        1066        76        0.9585        2.86
4.76        3.03        0.0573        0.2389        0.6987        0.107        0.0044        0.2812        0.6467        0.9021        0.012        9177        85.32        0.0024        0.0941        85        1187        74        1.7871        2.72
5.49        3.28        0.0589        0.0764        0.8853        0.2064        0.0047        0.3593        0.6743        0.9063        0.0113        10272        88.41        0.0156        0.0989        94        1159        102        1.1353        2.57
8.77        4.5        0.0785        0.222        0.9025        0.4469        0.0031        0.3771        0.6995        0.9126        0.0135        11419        118.61        0.0227        0.0241        180        1641        163        2.5046        2.52
9.96        7.67        0.0865        0.125        0.8773        0.6543        0.005        0.3974        0.6758        0.9353        0.0171        12711        131.48        0.0456        0.0439        319        1582        185        4.28        2.31
10.91        15.4        0.1116        0.2842        0.858        0.4862        0.0078        0.336        0.6344        0.9481        0.0183        14172        155.24        0.0682        0.0539        474        1874        251        4.911        2.26
15.09        23.15        0.1334        0.2627        0.8957        0.5303        0.0045        0.4043        0.6699        0.9375        0.0146        16565        188.15        0.0225        0.0417        639        2225        348        7.9329        2.2
16.59        38.37        0.1545        0.2619        0.8811        0.5619        0.0061        0.1339        0.5851        0.9671        0.0145        20157        218.62        0.0081        0.0465        899        2449        464        10.92        2.11
16.02        44.91        0.1317        0.0888        0.8355        0.6167        0.0118        0.2629        0.6059        0.9859        0.0187        23524        190.44        0.0223        0.01        749        2161        421        10.7675        2
7.35        31.26        0.0778        -0.0696        0.6686        0.6997        0.0476        0.0972        0.6803        0.9227        0.0204        26743        115.84        0.0211        0.017        491        1273        245        9.5421        1.86
16.37        57.32        0.1184        0.306        0.7914        0.6367        0.0125        0.8223        0.4039        0.9864        0.0416        29096        177.48        0.0171        0.009        686        1818        443        14.0626        1.8
21.85        65.65        0.1098        0.0703        0.8171        0.6672        0.0094        0.1208        0.3966        1.0153        0.01        32092        164.7        0.0038        0.0079        1416        6503        716        14.7915        1.4
35.73        53.26        0.099        0.0124        0.7475        0.6044        0.0039        0.0645        0.3241        0.9732        0.0078        37679        147.71        0.0148        0.0063        1376        6218        660        10.2735        1.32
46.78        56.02        0.1005        0.1354        0.8947        0.7741        0.0023        0.1105        0.3566        1.1036        0.0113        42833        151.25        0.0043        0.0044        1274        6529        594        17.6762        1.26
53.31        33.18        0.0769        -0.2055        0.7964        0.7565        0.0038        0.0816        0.3459        0.925        0.0056        46960        116.89        0.0031        0.0019        945        5073        472        5.76        1.19


]
x=A(:,[1,2,3,4,5,6,7,8,10,11,12,13,14,15,19])'
y=A(:,[9,16,17,18,20])';
for i=1:15
    x(i,:)=((x(i,:))-min(x(i,:)))/(max(x(i,:))-min(x(i,:)));
end
for i=1:5
    y(i,:)=(max(y(i,:))-y(i,:))/(max(y(i,:))-min(y(i,:)));
end
A=[x',y']'
A=zscore(A);
B=[2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
2        2        2        2        2        2        2        2        2        2        2        2        2        2        2
]
A=A+B
%计算各指标的信息熵
[m,n]=size(A);
P=zeros(m,n);
Q=zeros(m,n);
lam=1/log(n);
H=zeros(m,1);
for i=1:m
    P(i,:)=A(i,:)/sum(A(i,:));
    for j=1:n
        if P(i,j)~=0
            Q(i,j)=P(i,j)*log(P(i,j));
        end
    end
    H(i)=-lam*sum(Q(i,:));
end
%确定各指标的变异度
D=1-H;
%确定各指标熵权
W=D/sum(D);
disp(W);
z1=W(1:4)'*A([1:4],:)
z2=W(5:9)'*A([5:9],:)
z3=W(10:11)'*A([10:11],:)
z4=W(12:13)'*A([12:13],:)
z5=W(14)'*A([14],:)
z6=W(15:18)'*A([15:18],:)
z7=W(19:20)'*A([19:20],:)
z=W'*A
tt=[z1',z2',z3',z4',z5',z6',z7']




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-10-10 10:32:52
请问楼主会用matlab求权重了吗?为什么我用测试数据总是出现各种不同的错误
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群