有多少个指标或者多少个组什么的·····直接扔进k里面
clear all
clc
tic
K=[0.87227167 -2.430883344 1.856590442 -1.883467832 -0.236201493 4.306229966 -5.164856784 -1.087745943 -0.160407872 0.281228192 1.502610836 -1.833891438 5.542559889 -5.376723461 1.246033285 -0.788832221 3.211149036 3.114897655 -2.980666158 3.174973827 -1.183491435 -2.761987814 0.049387372 0.998197425 -3.462200949 -5.798857783 7.244345344 1.749727015
0.43137 -0.23089 -0.29396 0.11601 1.56668 -0.3255 -0.73547 -1.33467 1.21978 1.03056 -1.61849 -1.30313 -0.83008 0.17908 0.58905 -2.91149 1.18825 0.05294 -0.04167 0.0214 0.84135 0.90442 0.27369 -0.13628 0.93596 -0.70394 0.14755 0.96749
];
G=rot90(K);
x=flipud(G); %矩阵变换或者x=K'
y=[];
[m,n]=size(x);
for i=1:n
y(:,i)=x(:,i)/sum([x(:,i)]) ; % 原始矩阵归一化
end
for l=1:n
s(1,l)=0;
for j=1:m
if y(j,l)==0;%%%%%%%%“==”表示等于“=”是赋值
p(1,l)=0;
s(1,l)=s(1,l);
else
p(1,l)=y(j,l)*log(y(j,l));
s(1,l)=s(1,l)+p(1,l);
end
end
end
k=(log(m))^(-1);
e=-k*s;
h=ones(1,n)-e;
w=h/sum(h) ; % 指标权重值
sum(w); % 计算综合评价值
g=y*w'
sum(g) %检验权重之和是否为1
toc %%%运行时间统计