clear;clc
disp('请输入判断矩阵A: ')
A = input('判断矩阵A=') % 输入判断矩阵
% 方法1:算术平均法求权重
%第一步:将判断矩阵按列归一化(每个元素除以其所在列的和)
Sum_A = sum(A,1) %矩阵按列求和形成一行向量
n = size(A,1) %方阵的行(列)数
SUM_A = repmat(Sum_A,n,1) %repeat matrix的缩写,维度1表列,即将Sum_A重复n行
Stand_A = A ./ SUM_A %方阵每个元素除以各列和
sum(Stand_A,2) %第二步: 将归一化的各列相加(按行求和)
disp('算术平均法求权重的结果为:'); %第三步: 将相加后得的向量中每个元素除以n即可得权重向量
disp(sum(Stand_A,2) / n)
% 方法2:几何平均法求权重
% 第一步:将A的元素按照行相乘得到一个新的列向量
Prduct_A = prod(A,2) % prod函数和sum函数类似,分别用于乘和加,dim=2表维度是行
Prduct_n_A = Prduct_A .^ (1/n) % 第二步:将新的向量的每个分量开n次方
% 第三步:对该列向量进行归一化即可得到权重
层次分析法之matlab代码实现
最新推荐文章于 2024-07-26 20:33:13 发布
本文详细介绍了如何使用MATLAB进行层次分析法(AHP)的代码实现,结合实例阐述了AHP的计算过程,包括判断矩阵、一致性检验及权重计算等关键步骤。
摘要由CSDN通过智能技术生成