INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Ringpuffer mit Zeiger



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!

12.09.2016, 15:42
Beitrag #4

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Ringpuffer mit Zeiger
Danke erst mal für eure Antworten!
Zitat:Kann ich nicht glauben, da du IMMER mit einem vorinitialisierten Array von NaN-Werten in das Schieberegister gehst.

Anfängerfrage: Ist es nicht wichtig das Array vor zu initialisieren da ich sonst eins von undefinierter Größe habe?

Zitat:Wie genau ist dein "bestimmter Bereich" definiert? Willst du lesen ala " gib mir das viertletzte Sample und die 5 vorhergehenden" oder eher wie "gib mir das Sample von Zeitpunkt t1 und die 5 vorhergehenden"? Da ist ein Unterschied!

Ich möchte bei von Zeitpunkt t1 einen bestimmten Bereich lesen.

Zitat:Du hast einen Ringbuffer, der die letzten N Samples zwischenspeichert. Du willst jetzt ab Position x beginnend y Samples lesen: einfach ArraySubset mit x als Index und y als Länge aus dem Buffer lesen. (Wenn x+y>N ist, dann bekommst du entsprechend weniger Samples zurück - der Buffer hat ja nur N Samples gespeichert.)

Hmm aber ist das nicht genau das Problem?

Beispiel:
ich möchte die Funktion im Programm öfter verwenden.
Sagen wir ich habe eine Puffergröße von 50000 Werten
Im Hauptprogramm erkenne ich ein bestimmtes Ereignis (Folge von bestimmten Werten) und möchte einen Zeiger auf den Wert setzen wo das Ereignis aufgetreten ist. ---Idee - ich merke mit den Index---
Später springe ich an die Stelle mit dem Index den ich mir gemerkt habe und lese von da 2000 Werte um diese auf bestimmte Kriterien hin zu bewerten. (Wichtig ist das, da die Bewertung nur in bestimmten Fällen gemacht werden muss)
Natürlich werde ich den Puffer groß genug wählen sodass alle Daten solange vorhanden sind wie das Hauptprogramm zum rechen braucht.
An ander Stelle im Programm möchte ich, sagen wir noch 200 Werte lesen die von einem anderen Ereignis ausgelöst wurden. Auch da, so die Idee, merke ich mir den Index.

Im Moment wird der mir doch immer verschoben auch wenn ich das Array erst rotiere und denn einen Wert hinzufüge.

Oder habe ich deinen Kommentar falsch verstanden?

Gruß Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Ringpuffer mit Zeiger - maxxillian - 12.09.2016, 13:45
RE: Ringpuffer mit Zeiger - jg - 12.09.2016, 13:51
RE: Ringpuffer mit Zeiger - GerdW - 12.09.2016, 13:54
RE: Ringpuffer mit Zeiger - maxxillian - 12.09.2016 15:42
RE: Ringpuffer mit Zeiger - GerdW - 12.09.2016, 16:02
RE: Ringpuffer mit Zeiger - maxxillian - 12.09.2016, 16:37
RE: Ringpuffer mit Zeiger - GerdW - 13.09.2016, 07:41
RE: Ringpuffer mit Zeiger - maxxillian - 13.09.2016, 12:31
RE: Ringpuffer mit Zeiger - GerdW - 13.09.2016, 12:38
RE: Ringpuffer mit Zeiger - maxxillian - 13.09.2016, 17:10
RE: Ringpuffer mit Zeiger - GerdW - 13.09.2016, 19:34
RE: Ringpuffer mit Zeiger - maxxillian - 14.09.2016, 09:53
RE: Ringpuffer mit Zeiger - GerdW - 14.09.2016, 10:18
RE: Ringpuffer mit Zeiger - maxxillian - 14.09.2016, 12:54
RE: Ringpuffer mit Zeiger - GerdW - 14.09.2016, 13:20
RE: Ringpuffer mit Zeiger - maxxillian - 15.09.2016, 10:03
RE: Ringpuffer mit Zeiger - jg - 15.09.2016, 10:41
RE: Ringpuffer mit Zeiger - maxxillian - 15.09.2016, 11:01
RE: Ringpuffer mit Zeiger - jg - 15.09.2016, 11:14
RE: Ringpuffer mit Zeiger - maxxillian - 15.09.2016, 11:30
RE: Ringpuffer mit Zeiger - maxxillian - 15.09.2016, 11:52
RE: Ringpuffer mit Zeiger - jg - 15.09.2016, 12:41

Gehe zu: