Skip to content

Commit aae5873

Browse files
committed
all tests fixed and little refactored
1 parent 831088b commit aae5873

File tree

4 files changed

+158
-148
lines changed

4 files changed

+158
-148
lines changed

Showcase.ipynb

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -56,37 +56,57 @@
5656
"bar.plot()\n",
5757
"foo.plot()\n",
5858
"baz = foo + bar\n",
59-
"baz.plot()"
59+
"baz.plot()\n",
60+
"\n",
61+
"numbers(11)\n"
62+
]
63+
},
64+
{
65+
"cell_type": "code",
66+
"execution_count": 11,
67+
"metadata": {
68+
"collapsed": false
69+
},
70+
"outputs": [
71+
{
72+
"data": {
73+
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGR1JREFUeJzt3XuMXGd5x/HvM5fdddZO4niXEGITJ2AiXAQl3ab0RiMF\nqBNBQu9JW5VLRFq1oVS9KRVVitL+Q1FbqVUKNQVxESUEWsBtTQOlVK2qhmYDSYgTAiZ1ajs3xzZe\nYu/s3J7+cc6ZnYxnds7unpmdd87vI1meOfPuzOuzsz8/+5x3zjF3R0RExkthoycgIiLZU7iLiIwh\nhbuIyBhSuIuIjCGFu4jIGFK4i4iMIYW7iMgYUriLiIwhhbuIyBgqbdQLz8zM+M6dOzfq5UVEgnTf\nffc96+6z/cZtWLjv3LmT+fn5jXp5EZEgmdnjacapLSMiMoYU7iIiY0jhLiIyhhTuIiJjSOEuIjKG\n+oa7mX3YzJ4xs4d6PG5m9pdmdtDMHjSzK7KfpoiIrEaayv0jwJ4VHr8G2BX/uRl4//qnJSIi69E3\n3N39P4ATKwy5HviYR+4Bzjezi7KaoMiwPXWqwpcefnqjpyGyLln03C8GDrfdPxJvO4uZ3Wxm82Y2\nf+zYsQxeWiR7H/3vQ/zqx+epNZobPRWRNRvqAVV33+vuc+4+Nzvb99OzIhvi2e8t0XQ4eaa60VMR\nWbMswv0osKPt/vZ4m0iQTpyuPu9vkRBlEe77gF+JV828Bjjl7k9m8LwiG+J4Eu7PKdwlXH1PHGZm\nnwSuAmbM7AjwR0AZwN0/AOwHrgUOAmeAtw1qsiLDkFTsx1W5S8D6hru739jncQd+I7MZiWwwtWVk\nHOgTqiJtluoNnluqAwp3CZvCXaTNydO11m2Fu4RM4S7S5vjppdZthbuETOEu0iYJ9FLBnhf0IqFR\nuIu0ScJ958y0KncJmsJdpM3xeG37S2c3K9wlaAp3kTYnz1QpGFw6O83JMzWaTd/oKYmsicJdpM3x\n01W2njPBtukJGk1noVLr/0UiI0jhLtLmxHNVLpieYNvmCUCfUpVwKdxF2pw4HYX7BdOTrfsiIVK4\ni7Q5fnopqtyn48pdJw+TQCncRdqcPFOLK/eJ+L7CXcKkcBeJNZrOyTNVtrWFu9oyEiqFu0jsdLWO\nO2yZKjNVLjJRKmi1jARL4S4SW6pF10ydKkc/FpOlQmubSGgU7iKxSq0BwGS5CMBUuchSvbGRUxJZ\n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\nEZEx9P9uRQxIU8yTVAAAAABJRU5ErkJggg==\n",
74+
"text/plain": [
75+
"<matplotlib.figure.Figure at 0x7f7c9cf24c18>"
76+
]
77+
},
78+
"metadata": {},
79+
"output_type": "display_data"
80+
}
81+
],
82+
"source": [
83+
"%matplotlib inline\n",
84+
"\n",
85+
"from fuzzy.classes import Domain, Set\n",
86+
"from fuzzy.functions import alpha, triangular, gauss\n",
87+
"from fuzzy.hedges import plus, minus, very\n",
88+
"\n",
89+
"numbers = Domain(\"numbers\", low=0, high=20, res=0.1)\n",
90+
"numbers.close_to_10 = Set(numbers, gauss(10, 10))\n",
91+
"\n",
92+
"numbers.close_to_10.plot()"
6093
]
6194
},
6295
{
6396
"cell_type": "markdown",
6497
"metadata": {},
6598
"source": [
6699
"## Rules\n",
67-
"\n",
68100
"Rules aka *Fuzzy Inference* is done when domains and sets are defined to combine sets of different domains. For this to work, first we need to make sure we only get a single membership value if we query a domain with multiple sets. "
69101
]
70102
},
71103
{
72104
"cell_type": "code",
73-
"execution_count": 4,
105+
"execution_count": null,
74106
"metadata": {
75107
"collapsed": false
76108
},
77-
"outputs": [
78-
{
79-
"ename": "NameError",
80-
"evalue": "name 'fromiter' is not defined",
81-
"output_type": "error",
82-
"traceback": [
83-
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
84-
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
85-
"\u001b[0;32m<ipython-input-4-d8c7a3e2d7ad>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m \u001b[0mfromiter\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
86-
"\u001b[0;31mNameError\u001b[0m: name 'fromiter' is not defined"
87-
]
88-
}
89-
],
109+
"outputs": [],
90110
"source": [
91111
"from numpy import outer\n",
92112
"\n",

0 commit comments

Comments
 (0)