MATLAB实现层次分析法计算权重的代码函数实现function Q=AHP(A) [m,n]=size(A);
RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
制礼作乐
[V,D]=eig(A); %求判断矩阵的特征值和特征向量,V特征值,D特征向量; 东茛宕碱tz=max(D);
B=max(tz); %最⼤特征值
[row, col]=find(D==B); %最⼤特征值所在位置
C=V(:,col); %对应特征向量
CI=(B-n)/(n-1); %计算⼀致性检验指标CI CR=CI/RI(1,n);
if CR<0.10
disp('CI=');disp(CI);
disp('CR=');disp(CR);
disp('对⽐矩阵A通过⼀致性检验,各向量权重向量Q为:');
Q=zeros(n,1);
for i=1:n
Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化杜华瑾>赤麂
end
江泽惠
else
disp('对⽐矩阵A未通过⼀致性检验,需对对⽐矩阵A重新构造');
end
7075t6
以上写在M⽂件中,最后在主界⾯添加判断矩阵,调⽤该函数⽅法:AHP(A);