1

我正在使用“fuzarit”函数来划分两个模糊数;

C = fuzarith(X, A, B, operator) x 是一个行向量,它定义了执行操作(在本例中为除法)的点的 x 坐标。我认为数学术语是abcissa。

A 和 B 是使用函数 trimf(x,[abc]) 由它们的 3 个顶点定义的三角模糊数,其中 a,b 和 c 是顶点的 x 坐标,如下所示:

x=0:0.1:10;和 P=trimf(x,[3 6 8]);

三角模糊数

现在,如果我使用除法运算符,假设我做 [3 6 8]/[1 2 3],结果 r 在数学上是 [1 3 8] 但 matlab 给了我一个纵坐标的 <101x1> 列向量rv/s x 的图。

问题是如何从列向量中提取 3 个顶点。

4

1 回答 1

1

对于这个或类似的问题,你可以这样做:

y = fuzarith(x, A, B, 'div');    
result = x([find(y ~= 0, 1, 'first') - 1, find(y == 1), find(y ~= 0, 1, 'last') + 1]);
于 2013-02-14T13:30:18.530 回答