clc,clear,close all%command window clear,workspace clear,clear all window A=[96 68 85 88 77 72 92 93 91 99 61 61 74 87 65 70 70 99 94 71 91 86 80 93 98 79 98 61 92 66 88 69 88 92 87 63 67 64 96 98 63 65 91 93 80 80 99 74 70 77 90 88 79 99 82 68 82 97 76 73 86 73 65 70 99 93 86 98 89 83 66 85 99 99 67 61 90 69 70 80]; [n,m]=size(A); for j=1:m C(:,j)=(A(:,j)-min(A(:,j)))./(max(A(:,j))-min(A(:,j))); %极大型(效益型) %C组成一个行动矩阵,负向指标的话可以换列再做一个for循环 end for i=1:n for j=1:m P(i,j)=C(i,j)./sum(C(:,j));%(:,j)代表一列的总和 end end for i=1:n for j=1:m if P(i,j)==0 P(i,j)=1E-6 end end end for j=1:m e(j)=(-1/log(n))*sum(P(:,j).*log(P(:,j))); end d=1-e for j=1:m w(j)=d(j)/sum(d) end s=w*P';s=s'; [ssort,id]=sort(s,'descend')解释一下这段代码
时间: 2024-01-16 13:03:49 浏览: 199
matlab中常见函数功用.pdf
这段代码是用于进行矩阵的层次分析法(AHP)计算的。AHP是一种用于多属性决策的方法,它将各个属性进行层次化的处理,将决策问题分解成多个层次,然后通过对各个层次的比较和权重确定,得出最终的决策结果。本段代码中,首先对原始矩阵进行了归一化处理,然后计算了每个属性的信息熵和权重,最后得出了各个属性的得分和排序结果。具体来说,代码中:
- 第1行清空了命令窗口和工作区,并关闭所有图形窗口。
- 第2-10行定义了一个8行10列的矩阵A,用于存储决策矩阵。
- 第12-17行对矩阵A进行了归一化处理,即将每个元素的值映射到[0,1]区间内。
- 第18-23行计算了每个属性的信息熵和权重,其中e表示信息熵,d表示权重,w表示归一化后的权重。
- 第24-29行计算了各个属性的得分,即将决策矩阵乘以权重矩阵得到的结果。
- 第30行对得分进行了降序排列,并返回了排序后的结果和对应的索引。
阅读全文