1

2 つのあいまいな数値の除算に「fuzarith」関数を使用しています。

C = fuzarith(X, A, B, operator) x は、演算 (この場合は除算) が実行される点の x 座標を定義する行ベクトルです。数学用語は横座標だと思います。

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 に答える