参考文章:模糊聚类分析之基础
直接上代码:
FuzzyNormal[mat_]:=Transpose@Array[#/Max@#&@mat[[;;,#1]]&,Dimensions[mat][[2]]];
FuzzyMaxMin[mat_]:=Module[{m,n}
,{m,n}=Dimensions[mat];
Array[Sum[Min@mat[[{#1,#2},k]],{k,1,n}]/Sum[Max@mat[[{#1,#2},k]],{k,1,n}]&,{m,m}]
];
FuzzySynthetize[mat1_,mat2_]:=Array[Max@@Min/@Transpose@{mat1[[#1]],mat2[[;;,#2]]}&,{Dimensions[mat1][[1]],Dimensions[mat2][[2]]}];
FuzzyBinarize[mat_,l_]:=Array[If[mat[[#1,#2]]<l,0,1]&,Dimensions[mat]];
代码说明:
FuzzyNormal[mat]:最大值规格化
FuzzyMaxmin[mat]:最大最小法建立模糊相似矩阵
FuzzySynthetize[mat1,mat2]:矩阵合成
FuzzyBinarize[mat,λ]:λ-截矩阵