DMUG-Archiv 2005

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: ListConvolve: Berechnung auf das erste Listenelement beschränken

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


Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html