Nochmal Danke an alle, die Lösung von Peter gefällt mir auch.
Die Art der ‘Zwischenzuweisung’ war mir auch noch nicht bekannt. Da habe ich wieder viel gelernt.
Viele Grüße Sven.
> Am 21.10.2019 um 20:18 schrieb Susanne & Udo Krause <su.krause@XXXXXXX.ch>:
>
> Hallo Peter,
>
> allerdings braucht es mit Ihrer Definition die Nirgendanderswoimselbennotebookverwendung der Variable flast:
>
> In[7]:= Clear[f]
> f // ClearAll
> f[x_ /; x > 3.2] := flast = 10
> f[x_ /; x < -0.8] := flast = -10
> f[x_] := flast;
>
> In[30]:= f[5]
> Out[30]= 10
>
> In[31]:= f[0]
> Out[31]= 10
>
> In[32]:= flast = 99;
> f[0]
> Out[33]= 99
>
> deshalb sollte man wenigstens eine kleine Sicherheit einbauen:
>
> In[34]:= Clear[f1]
> f1 // ClearAll
> f1[x_ /; x > 3.2] := f1`flast = 10
> f1[x_ /; x < -0.8] := f1`flast = -10
> f1[x_] := f1`flast;
>
> In[39]:= f1[5]
> Out[39]= 10
>
> In[42]:= flast = 88;
> f1[0]
> Out[43]= 10
>
>
> Grüsse
>
> Udo.
>
>
> Am 21.10.2019 um 04:50 schrieb Peter Klamser via demug:
>> Geht noch einfacher so:
>>
>> f//ClearAll
>> f[x_/;x>3.2]:=flast=10
>> f[x_/;x<-0.8]:=flast=-10
>> f[x_]:=flast;
>> ListPlot[{Table[{x,f[x]},{x,-5,5,0.1}],Table[{x,f[x]},{x,5,-5,-0.1}]},Joined->True]
>>
>> Viel Erfolg wünscht Peter
>>
>> Am Mo., 21. Okt. 2019 um 01:25 Uhr schrieb Peter Klamser <klamser@XXXXXXX.com
>>> :
>>> f//ClearAll
>>> f[x_/;x>3.2]:=flast=10
>>> f[x_/;x<-0.8]:=flast=-10
>>> f[x_/;Or[x>=-0.8,x<=3.2]]:=flast;
>>>
>>> ListPlot[{Table[{x,f[x]},{x,-5,5,0.1}],Table[{x,f[x]},{x,5,-5,-0.1}]},Joined->True]
>>>
>>> Am So., 20. Okt. 2019 um 19:28 Uhr schrieb Sven Stoll via demug <
>>> demug@XXXXXXX.ch>:
>>>
>>>> Liebe Liste,
>>>>
>>>> ich verzweifle eine Funktion mit Gedächtnis zu bauen, die ähnlich einem
>>>> Smitt-Trigger eine Hysterese abbildet.
>>>> Konkret soll die Funktion den Funktionswert von 10 liefern, wenn das
>>>> Argument > +3.2 (Volt) ist, und -10, wenn das Argument kleiner als -0.8
>>>> (Volt) ist.
>>>> Im Bereich von -0.8 bis + 3.2 soll jeweils der letzte Wert (10 oder -10)
>>>> erhalten bleiben.
>>>>
>>>> Das ist an und für sich kein Problem mit eine prozeduralen
>>>> Programmiersprache, aber wie macht man das mit Mathematica?
>>>>
>>>> Habt jemand eine Idee? Meine Ansätze (MODULE, WHILE, IF) sind alle
>>>> gescheitert.
>>>>
>>>> Viele Grüße
>>>> Sven
>>>> _______________________________________________
>>>> DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch
>>>> http://www.mathematica.ch/mailman/listinfo/demug
>>>> Archiv: http://www.mathematica.ch/archiv.html
>>>>
>> _______________________________________________
>> DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch
>> http://www.mathematica.ch/mailman/listinfo/demug
>> Archiv: http://www.mathematica.ch/archiv.html
_______________________________________________
DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch
http://www.mathematica.ch/mailman/listinfo/demug
Archiv: http://www.mathematica.ch/archiv.html