我试图将两个模糊集的交集表示为MatLab中的3d网格。
以下是我的矢量集:
x = [0.3 0.5 0.7]
y = [0.5 0.7 0.1]
接下来是这些陈述:
[u,v] = meshgrid(x,y)
w = min(u,v)
mesh(u,v,w)
x
和y
刻度似乎遍布整个地方,与每个矢量的实际索引号相关,即1 to 3
,图表应代表形状一个小三角形/ T-norm。
目前它看起来像这样:
以下是我正在遵循的书中的一个例子:
忽略看起来像分数的东西,它们是分隔符。结果图如下:
答案 0 :(得分:1)
通过参数u,v
,您告诉网格使用其中的值,即x
和y
中的值,以便定位数据点和相应的刻度。如果您只想在1,2,3处获得头寸和价位,请将这些参数保留下来。
mesh(w)
答案 1 :(得分:1)
在查找模糊集和交叉点之后,这就是我想出的。首先,让我们重现教科书的例子:
% possible values and associated degrees of truth for F
Fv = 1 : 5;
Ft = [0 0.5 1 0.5 0];
% possible values and associated degrees of truth for D
Dv = 2 : 4;
Dt = [0 1 0];
% determine degrees of truth for fuzzy intersection
It = bsxfun(@min, Ft', Dt);
% plot
h = mesh(Dv, Fv, It);
set(h, 'FaceColor', 'none')
set(h, 'EdgeColor', 'k')
xlim([0 4.5])
ylim([0 5])
xlabel D
ylabel F
view(37.5, 30)
结果是:
不像你的书那么漂亮,但同样的事情。
在示例中应用相同的代码会产生: