Ich dachte, wenn ich eine Variable einfügen würde, um den Verlauf global zu halten, würde sich der Bereich erweitern und ich würde ihn nicht mögen, aber wenn ich einen Abschluss verwende, kann ich ihn ausblenden. Dies ist mein eigenes Memo.
import numpy as np
def get_lpf(alpha):
    prev = np.nan * np.ones(1)
    calc = lambda pre, new : alpha * prev + (1.-alpha) * new
    def lpf(val):
        prev[0] = calc(prev[0], val) if not np.isnan(prev[0]) else val
        return prev[0]
    return lpf
lpf = get_lpf(0.8)
for i in range(100):
    new = numpy.random.normal()
    filtered = lpf(new)
    
    print("new=%f, filt=%f" % (new, filtered) )
prev = np.nan * np.ones(1)
calc = lambda pre, new : alpha * prev + (1.-alpha) * new
--Erstellen Sie eine Verlaufsvariable prev in der lpf-Generierungsfunktion get_lpf
--calc ist eine Funktion, die die LPF-Berechnung $ y_n = \ alpha y_ {n-1} + (1- \ alpha) x_n $ ausführt
prev[0] = calc(prev[0], val) if not np.isnan(prev[0]) else val
prev = setzen, wird es als neu definierte Definition anstelle eines Verweises auf eine externe Variable erkannt und es tritt ein Fehler auf.prev mit numpy.nan initialisiert wird, wird es so ausgegeben, wie es ist, bis es nicht mehr numpy.nan ist.