ISM解释结构模型法,并不知道是个啥,是风险分析方向的同学毕业要用到的,感觉不是很难,但是有着自己对应的原理,对于没有编程基础的同学来说可能有点难度。
我也忘了数据从哪来的了,不过计算的过程是没错的
%% 导入原始矩阵B
B= [
0 0 0 0 0 1 0 0 0 0 2 0 0 0 0 0 0 0 1
4 0 0 4 2 4 0 0 0 3 0 3 3 4 3 2 4 0 0
1 3 0 3 3 4 3 3 0 4 1 3 3 2 0 2 3 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 3 0 0
4 0 1 0 0 4 0 2 0 0 0 2 2 0 3 0 0 0 3
3 0 0 2 2 0 0 3 2 4 3 4 4 1 4 3 4 0 4
2 3 4 2 1 4 0 0 0 4 0 2 2 3 3 4 3 0 3
0 0 0 0 0 2 0 0 3 0 3 1 2 0 0 0 0 0 4
0 0 0 0 0 3 4 1 0 0 3 4 1 0 0 0 0 0 4
0 0 0 0 0 2 0 4 2 0 4 2 3 1 0 0 0 0 3
1 0 0 0 0 1 0 3 2 0 0 3 3 0 0 0 0 0 4
0 0 0 3 0 0 0 0 0 2 3 0 1 0 2 2 3 0 3
1 0 0 0 0 1 0 4 3 3 4 0 0 0 2 0 2 0 2
2 1 2 3 3 1 0 0 0 0 2 3 3 0 3 3 0 0 2
3 2 3 4 3 2 0 1 2 0 2 4 4 0 0 1 3 0 2
2 2 3 2 3 1 0 0 0 0 2 3 3 2 3 0 0 0 2
2 0 0 3 0 1 0 0 0 0 1 0 2 0 0 0 0 0 1
3 0 0 0 0 2 0 3 4 3 2 3 2 0 0 0 0 0 3
0 0 0 0 0 3 0 4 3 3 4 2 1 0 0 0 0 0 0
];
%% 计算规范化直接影响矩阵C
[m,n]=size(B);%读取B的大小
C= [];
hh = sum(B,2);
max_i = max(hh);
for i=1:m
for j =1:n
C(i,j) = B(i,j)/max_i;
end
end
%% 计算综合影响矩阵
I = eye(m,n);%生成单位矩阵
T = C*inv(I-C);
%% 计算影响度、被影响度、原因度和中心度
fi = sum(T,2);
ej = sum(T,1)';
Mi = fi+ej;
Ni = fi-ej;
result = [fi,ej,Mi,Ni];