以下是使用matlab/octave 实现模糊集联合的方法,以下是一些流行的模糊联合函数:
让我们用下面的代码来实现第一个联合函数,它非常简单:
A = containers.Map({1,2,3,4,5}, {0.1,0.3,0.2,0.2,0.6}); # fuzzy set A
B = containers.Map({1,5,6,7,8}, {0.8,0.3,0.2,0.2,0.6}); # fuzzy set B
AUB = containers.Map(A.keys, A.values); # fuzzy set AUB
for k = keys(B)
if isKey(AUB, k{1})
AUB(k{1}) = max(AUB(k{1}), B(k{1}));
else
AUB(k{1}) = B(k{1});
end
end
现在绘制隶属函数 μ(AUB):
plot(cell2mat(A.keys), cell2mat(A.values), 'color', 'r', 'linestyle', 'none');
plot(cell2mat(B.keys), cell2mat(B.values), 'color', 'g', 'linestyle', 'none');
plot(cell2mat(AUB.keys), cell2mat(AUB.values), 'color', 'b', 'linestyle', 'none');
title ("membership function plot for fuzzy union");
同样,fuzzy intersection functions 也有公理。