LabVIEWForum.de
array ab bestimmtem Wert auslesen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: array ab bestimmtem Wert auslesen (/Thread-array-ab-bestimmtem-Wert-auslesen)



array ab bestimmtem Wert auslesen - gemmkiog - 10.12.2009 14:17

Hallo,

ich möchte gerne aus einem 2d array das z.b aus 5 Spalten und 1000 Zeilen besteht irgendwo aus der Mitte 200 Zeilen auslesen.
In der ersten Spalte sind Winkel verzeichnet, so möchte ich jetzt wenn in der ersten Spalte irgendwo der Winkel 0Grad auftaucht anfangen auszulesen. Gestoppt werden soll dann z.b.wenn die Winkel nicht mehr aufsteigend sind. Also eine neue umdrehung beginnt.
Kurz gesagt ich will aus einem array, welches mehrere Motorumdrehungen aufzeichnet eine exemplarische heraus holen.
Die Start und End- Bedingungen kann ich ja über boolsche werte und ne case-schleife machen denke ich. Aber wie ich das insgesamt in Schleifen verpackt bekomme bekomm ich grade nicht hin.

Wär super wenn mir da jemand helfen könnte.


array ab bestimmtem Wert auslesen - SeBa - 10.12.2009 15:50

Bahn

Boolsche Werte, Case Struktur, Schleifen?

Nur mal so als Anregung, ist ausbaufähig. Findet auch nicht die erste/letzte Umdrehung. Aber die dazwischen.

[attachment=23104]

Gruß SeBa


array ab bestimmtem Wert auslesen - gemmkiog - 10.12.2009 16:30

Ich habe jetzt mal mein Problem mit vi illustriert.

Ich will also das LV das array durchsucht bis es einen Wert in der ersten (der Winkel-Spalte) findet, der zwischen 0 und 10 Grad liegt. Dann soll LV das array auslesen bis der Winkel nicht mehr steigt. Sprich, von 355Grad oder so auf z.B. 5Grad springt.
Die anfangsbedingung habe ich mit den Vergleichen in der For schleife gemacht, die dann die Case-Schleife anstoßen. Wie bekomme ich LV jetzt aber dazu die nachfolgenden Wert, die ja jetzt nicht mehr der Bedingung 0<x<10 Entsprechen in ein Array auszugeben?

Meine LV Version ist 8.2


array ab bestimmtem Wert auslesen - gemmkiog - 10.12.2009 17:47

Habs hinbekommen
zwar ein bisschen umständlich, aber ich glaube für nen anfänger ganz gut.
Ich bin jedenfalls sehr glücklich und mach jetzt FEIERABEND


array ab bestimmtem Wert auslesen - SeBa - 10.12.2009 20:39

Also ich hab jetzt nicht versucht das alles nachzuvollziehen, aber wenns tut dann tut es.Big Grin

Frag dich aber mal selbst, was du da so aufwendiges mit einem 2D Array anstellst, was ich mit viel weniger Aufwand für ein 1D Array gemacht habe. Bei ner textbasierten Sprache würd man hier von nem Einzeiler und nem Aufsatz sprechen.Tongue

Schau dir meins nochmal an (ok, geht bestimmt auch eleganter), ich erstelle zuerstmal ein 1D Array mit 10 mal 0°..359°, das ist nur zum testen. Am Ende kommt dabei der Index des Elements raus, das größer als der Schwellwert von 359 (bei dir halt 355) ist und nach dem Arrayelement 400 auftaucht. Mit diesem Index als Startwert suchst du erneut nach dem nächsten auftauchen von deinem Schwellwert. Dann hast du den Endindex.

Das vorletzte Element das ich benutzte ist das Teilarraydingens... Da schließt du dann halt das 2D Array von dir an und sagst ab dem gefundenen Startindex bis zum Endindex willst du die Elemente rausschneiden.

Da Das Schwellwert VI ein 1D Array will, nimmst du zuerst die erste Spalte aus deinem 2D Array und schließt das anstelle von meinem selbst gemachten 1D Array an.


Einfacher wäre es natürlich, wenn du wüsstest wie viele Elemente pro Umdrehung entstehen... aber wer suchet der findet.

Gruß SeBa