层次分析法之matlab代码实现

本文详细介绍了如何使用MATLAB进行层次分析法(AHP)的代码实现,结合实例阐述了AHP的计算过程,包括判断矩阵、一致性检验及权重计算等关键步骤。
摘要由CSDN通过智能技术生成
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次方

                                        
                                        % 第三步:对该列向量进行归一化即可得到权重
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值