我用matlab做层次分析,程序代码如下,但是怎么就没结果呢?%层次分析法的matlab程序 %%%%diertimoxingyiclc,cleardisp('输入判断矩阵');% 在屏幕显示这句话A=input('A=');% 从屏幕接收判断矩阵[n,n]=size(A);% 计
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/16 19:40:49
![我用matlab做层次分析,程序代码如下,但是怎么就没结果呢?%层次分析法的matlab程序 %%%%diertimoxingyiclc,cleardisp('输入判断矩阵');% 在屏幕显示这句话A=input('A=');% 从屏幕接收判断矩阵[n,n]=size(A);% 计](/uploads/image/z/9480042-18-2.jpg?t=%E6%88%91%E7%94%A8matlab%E5%81%9A%E5%B1%82%E6%AC%A1%E5%88%86%E6%9E%90%2C%E7%A8%8B%E5%BA%8F%E4%BB%A3%E7%A0%81%E5%A6%82%E4%B8%8B%2C%E4%BD%86%E6%98%AF%E6%80%8E%E4%B9%88%E5%B0%B1%E6%B2%A1%E7%BB%93%E6%9E%9C%E5%91%A2%3F%25%E5%B1%82%E6%AC%A1%E5%88%86%E6%9E%90%E6%B3%95%E7%9A%84matlab%E7%A8%8B%E5%BA%8F+%25%25%25%25diertimoxingyiclc%2Ccleardisp%28%27%E8%BE%93%E5%85%A5%E5%88%A4%E6%96%AD%E7%9F%A9%E9%98%B5%27%29%3B%25+%E5%9C%A8%E5%B1%8F%E5%B9%95%E6%98%BE%E7%A4%BA%E8%BF%99%E5%8F%A5%E8%AF%9DA%3Dinput%28%27A%3D%27%29%3B%25+%E4%BB%8E%E5%B1%8F%E5%B9%95%E6%8E%A5%E6%94%B6%E5%88%A4%E6%96%AD%E7%9F%A9%E9%98%B5%5Bn%2Cn%5D%3Dsize%28A%29%3B%25+%E8%AE%A1)
我用matlab做层次分析,程序代码如下,但是怎么就没结果呢?%层次分析法的matlab程序 %%%%diertimoxingyiclc,cleardisp('输入判断矩阵');% 在屏幕显示这句话A=input('A=');% 从屏幕接收判断矩阵[n,n]=size(A);% 计
我用matlab做层次分析,程序代码如下,但是怎么就没结果呢?
%层次分析法的matlab程序 %%%%diertimoxingyi
clc,clear
disp('输入判断矩阵');% 在屏幕显示这句话
A=input('A=');% 从屏幕接收判断矩阵
[n,n]=size(A);% 计算A的维度,这里是方阵,这么写不太好
x=ones(n,100);% x为n行100列全1的矩阵
y=ones(n,100);% y同x
m=zeros(1,100);% m为1行100列全0的向量
m(1)=max(x(:,1));% x第一列中最大的值赋给m的第一个分量
y(:,1)=x(:,1);% x的第一列赋予y的第一列
x(:,2)=A*y(:,1);% x的第二列为矩阵A*y(:,1)
m(2)=max(x(:,2));% x第二列中最大的值赋给m的第二个分量
y(:,2)=x(:,2)/m(2);% x的第二列除以m(2)后赋给y的第二列
p=0.0001;i=2;k=abs(m(2)-m(1));% 初始化p,i,k为m(2)-m(1)的绝对值
while k>p% 当k>p是执行循环体
i=i+1;% i自加1
x(:,i)=A*y(:,i-1);% x的第i列等于A*y的第i-1列
m(i)=max(x(:,i));% m的第i个分量等于x第i列中最大的值
y(:,i)=x(:,i)/m(i);% y的第i列等于x的第i列除以m的第i个分量
k=abs(m(i)-m(i-1));% k等于m(i)-m(i-1)的绝对值
end
a=sum(y(:,i));% y的第i列的和赋予a
w=y(:,i)/a;% y的第i列除以a
t=m(i);% m的第i个分量赋给t
disp('权向量:');disp(w);% 显示权向量w
disp('最大特征值:');disp(t);% 显示最大特征值t
%以下是一致性检验
CI=(t-n)/(n-1);% t-维度再除以维度-1的值赋给CI
RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];% 计算的标准
CR=CI/RI(n);% 计算一致性
if CR
我用matlab做层次分析,程序代码如下,但是怎么就没结果呢?%层次分析法的matlab程序 %%%%diertimoxingyiclc,cleardisp('输入判断矩阵');% 在屏幕显示这句话A=input('A=');% 从屏幕接收判断矩阵[n,n]=size(A);% 计
clc,
clear
disp('输入判断矩阵');% 在屏幕显示这句话
A=input('A=');% 从屏幕接收判断矩阵[n,n]=size(A);% 计算A的维度,这里是方阵,这么写不太好
x=ones(n,n);% x为n行100列全1的矩阵
y=ones(n,n);% y同x
m=zeros(1,n);% m为1行100列全0的向量
m(1)=max(x(:,1));% x第一列中最大的值赋给m的第一个分量
%y(:,1)=x(:,1);% x的第一列赋予y的第一列
x(:,2)=A*y(:,1);% x的第二列为矩阵A*y(:,1)
m(2)=max(x(:,2));% x第二列中最大的值赋给m的第二个分量
y(:,2)=x(:,2)/m(2);% x的第二列除以m(2)后赋给y的第二列
p=0.0001;
i=2;k=abs(m(2)-m(1));% 初始化p,i,k为m(2)-m(1)的绝对值
while k>p% 当k>p是执行循环体
i=i+1;% i自加1
x(:,i)=A*y(:,i-1);% x的第i列等于A*y的第i-1列
m(i)=max(x(:,i));% m的第i个分量等于x第i列中最大的值
y(:,i)=x(:,i)/m(i);% y的第i列等于x的第i列除以m的第i个分量
k=abs(m(i)-m(i-1));% k等于m(i)-m(i-1)的绝对值
end
a=sum(y(:,i));% y的第i列的和赋予a
w=y(:,i)/a;% y的第i列除以a
t=m(i);% m的第i个分量赋给t
disp('权向量:');
disp(w);% 显示权向量w
disp('最大特征值:');
disp(t);% 显示最大特征值t%以下是一致性检验
CI=(t-n)/(n-1);% t-维度再除以维度-1的值赋给CI
RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];% 计算的标准
CR=CI/RI(n);% 计算一致性
if CR