2017-05-21 3 views
1

Ich versuche, den Modus "gleich" in der Funktion np.correlate() zu verstehen. Ich habe die Definition in einer Website gesehen, aber ich kann nicht verstehen, wie es die Berechnung durchführt, um das endgültige Array zu erhalten.Wie funktioniert der Modus 'same' in np.correlate()?

Wie hieraus: np.correlate([2, 1], [1, 1], 'same') wir bekommen dies: array([2, 3])

Kann jemand ein Berechnungsbeispiel machen?

Antwort

1

Die mode='same' bedeutet nur, dass Sie ein Ergebnis gleich der Größe des größten Eingabearrays haben werden. Es ist eine Teilmenge der vollständigen Kreuzkorrelation (es gibt auch eine mode='full' Option). In Ihrem Beispiel haben wir:

2 1 
1 1 
------ 
0+2+0 = 2 

(Skalarprodukt, Null-Füllen gegebenenfalls dann "slide")

2 1 
    1 1 
----- 
    2+1 = 3 

Daraus ergibt sich die Antwort von [2,3].

Die vollständige Kreuzkorrelation würde weiter gleiten.

2 1 
    1 1 
------- 
    0+1+0 = 1 

Also wäre die vollständige Kreuzkorrelation [2,3,1].

Hinweis: Diese Schlüsselwörter aus den MATLAB-Implementierungen dieser Funktionen abgeleiteten

+0

Thx so viel und thx für die Ausgabe. –