Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Vielen Dank für Eure Beiträge zu meiner Frage, wie ich ein einzelnes Array in seiner Größe begrenzen kann. Dank Euch habe ich neue Möglichkeiten kennengelernt, wie man das machen kann. Die Variante mit der Queue hat mir gefallen, weil ich nicht wusste, dass ich alle in der Queue enthaltenen Elemente als Array auslesen kann. Das mit der Queue hat allerdings den Nachteil, dass ich stets nur 1 Element anfügen kann. Besteht mein "Datenstrom" aus einem Array mit mehreren Elementen, so müsste ich dies z.B. durch eine indizierte for-Schleife auftrennen, um jedes Element einzeln in die Queue zu senden.
Aus den Beiträgen habe ich gelernt, dass man bei großen Arrays auf die Speichereffizenz achten sollte. Dazu kann es vorteilhaft sein, ein Array zu indizieren und auf Build-Funktionen zu verzichten und ReplaceArraySubset-Variante zu nehmen.
Leider reicht meine Erfahrung noch nicht aus, um diese Erkenntnisse bestmöglich zu berücksichtigen, darum möchte ich meinen Ansatz hier vorstellen und ich würde mich über Rückmeldungen freuen, an welchen Stellen noch andere Lösungsmöglichkeiten bestehen.
Zunächst erzeuge ich ein Testsignal aus drei Sinus-Kurven mit unterschiedlichen Amplituden und Offsets. Dieses Signal wird in einen 1D-Array-Strang umgewandelt, weil ich in dieser Form später meine Mess-Signale von der Hardware bekomme.
Es wird ein Array initialisiert mit AnzKanäle = 3 und MaxAnzahl=2500.
Der 1D-Array-Strang wird in ein 2D-Array umgewandelt, dass zur Form des initialisierten Arrays passt.
Der umgewandelte Datenstrang wird an das init. Array drangehängt und der vordere Teil entsprechend abgesägt, so dass nur MaxAnzahl Elemente vorhanden sind.
Diese Methode funktioniert, ich bin mir aber nicht sicher, ob diese Form im Sinne der Speicherauslastung optimal ist, da ich durch Dranhängen und Zurechtsägen Build-Funktionen verwende. Natürlich habe ich versucht, mit der Funktion "Teil ersetzen" zu arbeiten und in dem angehängten Bild ist zu sehen, dass diese Funktion nicht funktioniert.
Dann wird auch in Euren Lösungsvorschlängen in dem Thread zu 1D-Arrays die Funktion Array rotieren verwendet. Diese Funktion arbeitet aber mit 1D-Arrays.
Ein anderer Lösungsansatz wäre nun, die 2D-Arrays in einer indizierten Schleife in 1D-Arrays umzuwandeln, um dort mit den 1D-Arrays zu arbeiten. Ist diese Lösung meinem ersten Ansatz vorzuziehen, um der Maßnahme gerecht zu werden, Build-Funktionen zu vermeiden?