Seite 1 von 1

Abschnittsweise definierte Funktion

Verfasst: Montag 29. Mai 2017, 10:02
von Pumpkinpy
Hallo zusammen ich bin es mal wieder.

Stehe gerade vor dem Problem, dass ich eine abschnittsweise definierte Funktion benutzen möchte.
was ich mit in etwa vorstelle ist eine Funktion die mit immer nur den benötigten Funktionsteil zurückgibt. Wieviele unterteilungen es gibt ist variabel, von daher ist die lösung mit den elif etwas ungünstig. Habt ihr da ne andere Möglichkeit? Möglich wäre es wohl auch über eine while-Schleife., was natürlich auch das problem mit der Anzahl der Schleifen nicht löst :

if:

Code: Alles auswählen

def func( (a, b, c, ...), (t_1, t_2, t_3, ...), t): 

if t<t_1:
    return(a)
    
elif t<t_2:
    return(b)

....
while:

Code: Alles auswählen

def func(a, b, c, ...), (t_1, t_2, t_3; ...), t)

while t<t_1:
    return(a)
    
while t_1<t<t_2:
    return(b)
    
....

Re: Abschnittsweise definierte Funktion

Verfasst: Montag 29. Mai 2017, 11:17
von BlackJack
@Pumpkinpy: Was das ``while`` da bewirken soll ist mir nicht so ganz klar. Das ist doch nur ein kompliziert und verwirrend ausgedrücktes ``if``.

``return`` ist eine Anweisung und keine Funktion. Das sollte man deshalb auch nicht so schreiben als wäre es ein Funktionsaufruf.

Suchst Du eventuell `numpy.piecewise()`?

Ansonsten könntest Du auch eine ``for``-Schleife über die Grenzwerte und Funktionen schreiben.

Re: Abschnittsweise definierte Funktion

Verfasst: Montag 29. Mai 2017, 13:15
von pillmuncher
@Pumpkinpy: Geht mir genauso wie BlackJack, auch ich verstehe nicht recht, was du erreichen willst.

Ich vermute aber, du könntest es mit einer Generator Function (AKA Co-Routine) oder mit Continuations lösen.

Oder du versuchst uns zu erklären, warum du so etwas programmieren möchtest. Siehe auch XY-Problem.