LabVIEWForum.de
geradzahliges Array - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: geradzahliges Array (/Thread-geradzahliges-Array)



geradzahliges Array - derduid - 06.08.2013 12:34

Sehr geehrte LV-Gemeinde,

im Anhang befindet sich mein vereinfachtes VI mit dem ich noch ein Problem habe. Ich initialisiere ein 2D-Array in dem sich durch Zufallszahlen immer unterschiedlich viele Zeilen ergeben. Als Ergebnis hätte ich gerne, dass sich immer geradzahlig viele Zeilen ergeben und wenn sie ungerade sind, soll die letzte Zeile am Anfang des Arrays im nächsten Schleifendurchgang angehängt werden (bzw. das neue Array an die Zeile des alten Arrays). In den Spalten stehen immer gleich viele Elemente.
Hat jemand eine Idee, wie ich es löse, wenn ich Fall, dass ich geradzahlige Arrays bekomme, keine Zeile übergeben wird?

Vielen Dank im Voraus.
derduid

[attachment=45768]


RE: geradzahliges Array - GerdW - 06.08.2013 15:27

Hallo duid,

deine Beschreibung war etwas konfus, deshalb das hier als Idee:
[attachment=45771]


RE: geradzahliges Array - derduid - 06.08.2013 16:35

Hallo GerdW,

erstmal vielen Dank für die schnelle Antwort. Allerdings hilft mir die Idee leider nicht weiter.

Ich bekomme als Eingang meines Sub-VIs ein 2D-Array mit verschieden vielen Zeilen (mit immer gleicher Spaltenanzahl, heißt erste Dimension ist gleich, zweite unterschiedlich) und diese würde ich gerne zu einem Array mit geradzahligen Zeilen "bündeln". Wenn ein 2D-Array am Eingang ungerade ist, sollte die letzte Zeile ausgeschnitten und dem Array im nächsten Schleifendurchgang vorne angehängt werden. Natürlich könnte dieses "neue" 2D-Array (mit der angehängten Zeile des vorrigen Schleifendurchlaufs oder auch nicht angehängt, falls es gerade war) auch wieder ungerade sein. Dann müsste man wieder die letzte Zeile entfernen und dem nächsten 2D-Array vorne angehängen, etc.

Ist das so verständlich?

Beste Grüße


RE: geradzahliges Array - jg - 06.08.2013 17:59

Du warst doch schon recht weit. Allerdings hast du in deinem Bsp immer ein Array derselben Größe erzeugt.
Deshalb hier ein Variante mit zufälliger Zeilenanzahl:
[attachment=45777]
Das musst du jetzt noch zu einem FGV-SubVI umbauen, und du bist fertig.

Gruß, Jens


RE: geradzahliges Array - Lucki - 06.08.2013 18:21

Hier noch mal das Gleiche wie von Jens, wenn auch später - ich wurde zum Essen abberufen. Der Einfachheit halber nehme ich statt Spalten Elemente, d.h ich mach das mit 1D-Arrays. Die Erweiterung auf 2D ist ja trivial und hat mit dem Problem selbst nichts zu tun.
[attachment=45778]


RE: geradzahliges Array - derduid - 07.08.2013 11:49

Vielen Dank für eure Hilfe!

Ich weiß zwar nicht genau, wie ich ein FGV-SubVI aufbau, aber ich habe es einfach mit einer Rückkopplung realisiert.
Eine Frage habe ich noch:
Kann man ein externes digitales Signal sowohl als Trigger (DAQmx Start Trigger) für analoge Eingänge als auch für den Task, mit dem ich dieses digitale Signal messen will, verwenden?

Beste Grüße
Stefan


RE: geradzahliges Array - Trinitatis - 07.08.2013 17:18

(07.08.2013 11:49 )derduid schrieb:  ...
Ich weiß zwar nicht genau, wie ich ein FGV-SubVI aufbau, aber ich habe es einfach mit einer Rückkopplung realisiert.
...

Hallo Stefan,

eine FGV ist eine funktionale globale Variable. Wenn du ein Sub-VI erstellst, das eine While-Schleife enthält, die genau einmal durchläuft und uninitialisierte Schieberegister enthält, dann steht dir der einmal (bzw. zuletzt) in dieses Schieberegister geschriebene Wert bei jedem neuen Aufruf dieses VIs wieder zu Verfügung. Insofern kommt es einer globalen Variable gleich.


Gruß, Marko


RE: geradzahliges Array - jg - 07.08.2013 20:40

Eine nichtinitialiserte Feedback-Node leistet dasselbe wie eine While-Schleife+Schieberegister, somit hast du instinktiv dein erstes FGV erstellt.

Gruß, Jens