8

私はファジー システムのコースを受講しており、コンピューターでメモを取っています。これは、コンピューターで時々グラフを描かなければならないことを意味します。これらのグラフは非常に明確に定義されているため、グラフをプロットするnumpyのは良い考えだと思います (私は LaTeX でメモを取り、Python シェルで非常に高速なので、これでうまくいくと思います)。

ファジー メンバーシップ関数のグラフは、次のように非常に区分的です。

ファジーメンバーシップ関数

これをプロットするために、次のコードを a に試してみましたnumpy.piecewise(不可解なエラーが発生します)。

In [295]: a = np.arange(0,5,1)

In [296]: condlist = [[b<=a<b+0.25, b+0.25<=a<b+0.75, b+0.75<=a<b+1] for b in range(3)]
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-296-a951e2682357> in <module>()
----> 1 condlist = [[b<=a<b+0.25, b+0.25<=a<b+0.75, b+0.75<=a<b+1] for b in range(3)]

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

In [297]: funclist = list(itertools.chain([lambda x:-4*x+1, lambda x: 0, lambda x:4*x+1]*3))

In [298]: np.piecewise(a, condlist, funclist)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-298-41168765ae55> in <module>()
----> 1 np.piecewise(a, condlist, funclist)

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/function_base.pyc in piecewise(x, condlist, funclist, *args, **kw)
    688     if (n != n2):
    689         raise ValueError(
--> 690                 "function list and condition list must be the same")
    691     zerod = False
    692     # This is a hack to work around problems with NumPy's

ValueError: function list and condition list must be the same

この時点で、この関数をプロットする方法についてかなり混乱しています。エラーメッセージがよくわかりません。これが、これをデバッグする私の努力をさらに妨げています。

最終的に、私はこの関数をプロットして EPS ファイルにエクスポートすることを検討しているので、それらの行に沿って助けていただければ幸いです。

4

1 に答える 1