Guten Abend Frank,
verwenden Sie doch kuesterListConvolveFirst
In[15]:= Remove[kuesterListConvolveFirst];
kuesterListConvolveFirst[(k_List)?VectorQ, (v_List)?VectorQ] := k .
Reverse[Take[v, Length[k]]] /; Length[k] <= Length[v]
In[27]:=
With[{xL = 1743, yL = 4096},
k = Table[Subscript[x, i], {i, xL}];
l = Table[Subscript[y, i], {i, yL}];
First[ListConvolve[k, l]] - kuesterListConvolveFirst[k, l]
]
Out[27]=
0
Schönen Abend
Udo.
P.S.: Erweitern Sie die Funktion, um das n-te (n < = Length[v] -
Length[k] + 1) Element direkt zu finden.
Frank Küster wrote:
Hallo,
Ich möchte mehrfach über großen Datensätzen (bis zu 4096 Elemente)
ListConvolve anwenden, aber mich interessiert immer nur das erste
Element des Ergebnisses. Die Berechnung dauert leider ziemlich lange,
und natürlich wird fast alles davon nachher weggeworfen.
Gibt es eine Möglichkeit, nur das erste Element berechnen zu lassen,
bzw. gibt es low-level-Funktionen, die ListConvolve verwendet und die
ich spezieller aufrufen könnte? Bei mir ist der Kernel immer kürzer
oder maximal gleichlang wie die Liste, die immer 4096 Elemente hat.
TIA, Frank