# 依赖: numpy import numpy as np def fuzzy_eval(R, w, levels=(90.0, 75.0, 60.0, 0.0)): R = np.asarray(R, dtype=float) # 每行是一个指标的隶属度分布,行和应为 1 w = np.asarray(w, dtype=float) w = w / w.sum() B = w @ R # 加权合成,也可换成 M(∧,∨) 算子 score = float(B @ np.asarray(levels, dtype=float)) return B.round(4), round(score, 2) R = [[0.6, 0.3, 0.1, 0.0], [0.2, 0.5, 0.2, 0.1]] print(fuzzy_eval(R, w=[0.7, 0.3])) # 隶属函数的选择理由要写进论文