DEMATEL算法程序
写了一个简单的DEMATEL算法的程序
clear;clc;
%% 计算直接关联矩阵
w=[1,2,3,4,5,6]; %整体权值向量
m=length(w);
B=zeros(m); %初始化直接关联矩阵
for i=1:m
for j=1:m
B(i,j)=w(i)/w(j);
B(i,i)=0
end
end
%% 归一化
X=mapminmax(B,-1,1); %归一化直接关联矩阵,归一化至[-1,1]
T=X*inv(eye(m)-X); %全关联矩阵
%% 建立因果关系图
for i=1:m
for j=1:m
D(i)=sum(T(i,:)); % 全关联矩阵的各行之和-被影响度
R(j)=sum(T(:,j)); % 全关联矩阵的各列之和-影响度
end
end
f=R+D; % 中心度
r=R-D; % 原因度