首页 > 编程知识 正文

特尔斐法计算权重值(层次分析法结合变异系数)

时间:2023-05-05 23:43:40 阅读:68095 作者:1569

利用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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。