Array-Initialisierung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Array-Initialisierung (/Thread-Array-Initialisierung) |
Array-Initialisierung - creo_123 - 06.03.2013 13:02 Hallo, ich komme an einer Stelle leider nicht weiter.. Ich möchte automatisiert mehrere Messungen hintereinander durchführen und dann zum einen alle Daten in einem Array speichern (jeweils zwei Spalten pro Messung (x- und y-Wert) mit unbekannter Anzahl an Messpunkten (Zeilen)) und zum anderen den Mittelwert aus den Messungen jeder Messstelle berechnen. Mein Problem dabei ist, dass ich in die Schieberegister ja ein Startarray eingeben muss.. Das müsste für den die Mittelwertberechnung ein Array in der entsprechenden Größe mit Nullen sein. Diese Größe kenne ich aber leider vorher nicht, was gerade mein Problem ist.. In dem Array mit allen Messwerten könnte ich dann die beiden Nullspalten des Startarrays einfach ignorieren. Habe mein Vi, so wie es bis jetzt aussieht, mal angehängt.. Wäre für etwas Hilfe wirklich sehr dankbar.. RE: Array-Initialisierung - Wall-E - 06.03.2013 14:03 Du kannst auch einfach das erste erhaltene Array ins Schieberegister schreiben. Wenn ich das Problem richtig verstanden habe, geht das so... RE: Array-Initialisierung - creo_123 - 07.03.2013 10:04 Hey, danke!!! ist genau das was ich brauche welche Möglichkeiten gibt es denn eigentlich, um ein Array zu leeren.. also dass er mir, wenn ich erneut eine Messung starte, zuerst die alten Werte aus dem Array löscht.. Momentan ist es so, dass die alten Werte stehen bleiben.. also wenn ich zuerst eine Messung mit fünf Durchläufen und anschließend eine mit einem Durchlauf ausführe, dann überschreibt er die ersten beiden Spalten mit der neuen Messung, die andern 8 Spalten enthalten aber noch die Werte von der vorherigen Messung, die ich gerne raushätte.. RE: Array-Initialisierung - GerdW - 07.03.2013 10:07 Hallo creo, das Schieberegister mit einem leeren Array initialisieren!? Oder selbst ein leeres Array ins Schieberegister schreiben!? RE: Array-Initialisierung - Wall-E - 07.03.2013 10:38 Wenn Du die Schleife beendest und neu startest, wird der Schleifenzähler zurück gesetzt, damit der "0-Case" der Schleife ausgeführt und das Schieberegister mit dem ersten gemessenen Array überschrieben. Willst Du die Schleife nicht beenden und neu starten, kannst Du den "0-Case" auch irgendwie anders auslösen (siehe Bildchen). Läuft alles übrigens auf "Oder selbst ein leeres Array ins Schieberegister schreiben!?" (GerdW) hinaus. ;-) P.S. Ich Prokrastiniere übrigens gerade... daher der unbändige Drang so simples Zeug zu erklären. Nur nicht dran gewöhnen. ;-) RE: Array-Initialisierung - creo_123 - 07.03.2013 18:37 Danke für die schnellen Antworten das Schieberegister mit einem leeren Array zu initialisieren, habe ich auch schon probiert (siehe Bild).. aber das führt leider nicht zum gewünschten Ergebnis.. oder habe ich da irgendeinen Denkfehler drin? Und das mit dem Überschreiben, wenn ich die Schleife neu starte, funktioniert natürlich.. nur wenn die zweite Messung weniger Spalten hat als die erste, dann werden die restlichen Spalten nicht überschrieben.. und wenn ich selbst ein leeres Array ins Schieberegister schreibe, dann müsste das ja im 0. Schleifendurchlauf geschehen, d.h. ich könnte erst im ersten mit der eigentlichen Messung beginnen.. die 0 würde mir dann quasi verloren gehen.. oder wieder ein Denkfehler? RE: Array-Initialisierung - GerdW - 07.03.2013 18:54 Hallo creo, Zitat:das Schieberegister mit einem leeren Array zu initialisieren, habe ich auch schon probiert (siehe Bild)..Anhand des Bildes würde ich sagen: Schieberegister mit leerem Array initalisiert. Was ist denn das gewünschte Ergebnis, das hier nicht erreicht wird? Hast du das Ergebnis mit Sonden überprüft? Zitat:wenn ich selbst ein leeres Array ins Schieberegister schreibe, dann müsste das ja im 0. Schleifendurchlauf geschehen, d.h. ich könnte erst im ersten mit der eigentlichen Messung beginnen.. die 0 würde mir dann quasi verloren gehen.. oder wieder ein Denkfehler?Eindeutig Denkfehler. Was spricht dagegen, wie im Bild gezeigt, mit einer Case-Struktur bei i=0 die Schieberegister zu initialisieren (ob nun mit leeren Arrays oder wie bei dir mit irgendwelchen Daten) und nach der Case-Struktur die neuen Messwerte einzutragen? RE: Array-Initialisierung - creo_123 - 07.03.2013 19:22 Hallo Gerd, wenn beispielsweise meine erste Messung aus fünf Einzelmessungen besteht, dann stehen insgesamt 10 Spalten in meinem Array. Führe ich dann anschließend eine Messung mit nur einer Einzelmessung durch, hätte ich gerne nur zwei Spalten in meinem Array.. es ist aber momentan so, dass die ersten beiden Spalten dann die gewünschten Daten aus der zweiten Messung enthalten, in den restlichen acht Spalten aber noch die Daten aus der vorherigen Messung stehen. Deshalb versuche ich das Schieberegister mit einem leeren Array zu initialisieren, um diesen Effekt zu vermeiden, was aber leider nicht funktioniert. Mit Sonden habe ich noch nichts überprüft, werde ich aber nachholen. Habe leider auf meinem Rechner zuhause kein Labview.. RE: Array-Initialisierung - Wall-E - 08.03.2013 00:07 Was Du schreibst ergibt gerade absolut keinen Sinn für mich, Creo. Mag natürlich an mir liegen, meine aktuelle Wachphase ist ja auch schon nicht mehr ganz OVP. ;-) Wertepaare (x/y) => Immer 2 Spalten. Jede Messung ist eine Zeile. Das heisst also 1 Messung => 1 Zeile. 5 Messungen => 5 Zeilen. 10 Messungen => 10 Zeilen. 2 Spalten bleiben es aber immer. Oder habe ich da was komplett falsch verstanden? RE: Array-Initialisierung - creo_123 - 08.03.2013 09:30 Ich habe zu jeder Messung immer x und y, also 2 Spalten das stimmt.. die Messwerte stehen dann aber untereinander.. also habe ich so viele Zeilen, wie ich Messpunkte habe.. Habe ich mehrere Messungen hintereinander stehen immer die x- und y-Werte dieser Messungen nebeneinander in den Spalten des Arrays.. Durch die Sonden hat sich mein Problem aber gelöst.. Habe die Arrays im Case ausgelesen, der bei nur einer Messung nicht aktiviert wird.. also wurden da auch die Arrays nicht mit den leeren Arrays überschrieben.. peinlich Aber nochmal vielen Dank an alle, die mir geholfen haben |