利用matlab编程,基于变异系数法,容易求出多指标综合评价模型的权重。 如果有不明白代码的地方,请联系我。
用变异系数法求权重matlab码
clear clc;
[data1,header1]=xls read (' statistic1. xlsx ',' ECO ' ); 必须将statistic.xlsx放在默认文件下或指定完整路径
[data2,header2]=xls read (' statistic2. xlsx ',' ECO ' ); % data1是10个city数据,data2位是20个city数据
size1=size(data1; m1=size1(1,1 ); d1=data1; d2=data2;
size2=size (数据2; m2=size2(1,1 );
judge=[4 6 12 13 16 17 18]; %需要极大化处理指标位置
forj=1:length(judge ) %最大化极小数据指标,便于计算得分D2 ) :judge(1,j )=1./D2 ) :judge () 1,j )
D1 ) 3360,judge(1,j )=1./D1 ) :judge(1,j );
结束
sum2=sum(D2; sum1=sum(D1;
data22=[]; data11=[];
for i=1:m2 %数据归一化处理
data22=[data22; D2(I, )./sum2] );
结束
for i=1:m1
data11=[data11; D1(I, )./sum1]);
结束
R=data22;
eta=STD(r )./mean(R ) ); %计算变异系数
w=deta/sum(deta;
%score=data1*w '; %综合得分
score=data11*w ';
output=[mean(r; 数据; w];
score1=5(酷睿最小(酷睿) STD (酷睿) /长度(酷睿) )./(最大)酷睿(-最小)酷睿(均分) )/lenenere
%效应系数法使得分为[ 5,100 ]
[ScoreFinal,index]=sort(score1,' descend ' ); %降序数组
sort=[ScoreFinal,index]; %分数和排名
xlswrite(statistic1.xlsx )、output、)变动系数); %输出平均值mean、标准偏差std、权重w到statistic1.xlsx
xswrite(statistic1.xlsx )、sort、)变异sortDescend ); 输出%分数和排名statistic1.xlsx