求matlab层次分析法简单例题,或者现编个:代码清晰一点,最好加上注释!如果没有例题,就把这个编了!还要一致性检验!

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 10:25:41

求matlab层次分析法简单例题,或者现编个:代码清晰一点,最好加上注释!如果没有例题,就把这个编了!还要一致性检验!
求matlab层次分析法简单例题,或者现编个:
代码清晰一点,最好加上注释!如果没有例题,就把这个编了!还要一致性检验!

求matlab层次分析法简单例题,或者现编个:代码清晰一点,最好加上注释!如果没有例题,就把这个编了!还要一致性检验!
挑选合适的工作.经双方恳谈,已有三个单位表示愿意录用某毕业生.该
生根据已有信息建立了一个层次结构模型,的MATLAB程序
clc,clear
fid=fopen('txt3.txt','r');
n1=6;n2=3;
a=[];
for i=1:n1
tmp=str2num(fgetl(fid));
a=[a;tmp]; %读准则层判断矩阵
end
for i=1:n1
str1=char(['b',int2str(i),'=[];']);
str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']);
eval(str1);
for j=1:n2
tmp=str2num(fgetl(fid));
eval(str2); %读方案层的判断矩阵
end
end
ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指标
[x,y]=eig(a);
lamda=max(diag(y));
num=find(diag(y)==lamda);
w0=x(:,num)/sum(x(:,num));
cr0=(lamda-n1)/(n1-1)/ri(n1)
for i=1:n1
[x,y]=eig(eval(char(['b',int2str(i)])));
lamda=max(diag(y));
num=find(diag(y)==lamda);
w1(:,i)=x(:,num)/sum(x(:,num));
cr1(i)=(lamda-n2)/(n2-1)/ri(n2);
end
cr1, ts=w1*w0, cr=cr1*w0
纯文本文件txt3.txt中的数据格式如下:
1 1 1 4 1 1/2
1 1 2 4 1 1/2
1 1/2 1 5 3 1/2
1/4 1/4 1/5 1 1/3 1/3
1 1 1/3 3 1 1
2 2 2 3 3 1
1 1/4 1/2
4 1 3
2 1/3 1
1 1/4 1/5
4 1 1/2
5 2 1
1 3 1/3
1/3 1 1/7
3 7 1
1 1/3 5
3 1 7
1/5 1/7 1
1 1 7
1 1 7
1/7 1/7 1
1 7 9
1/7 1 1
1/9 1 1