LabVIEWForum.de - 1D Array schrittweise befüllen

LabVIEWForum.de

Normale Version: 1D Array schrittweise befüllen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
Es klingt (für mich) relativ einfach, aber umgesetzt bekomme ich es bisher nicht. Folgende Situation: Ich habe 4 Zahlenreihen, von denen jede 50 Stellen hat, als Integer. Diese vier Reihen kommen nacheinander an einen Ausgang und sollen dann ALLE hintereinander in ein
Array geschoben werden, so dass ein Array mit 200 Stellen herauskommt und die vier Reihen quasi hintereinander im Array stehen, in einer Dimension. Genau da ist mein Problem, denn ich bekomme zwar diese Reihen in ein Array geschoben, jedoch überschreibt die nächste Reihe wieder die vorangegangene. Hat da jemand einen kleinen Denkanstoß für mich?

Gruß
Hallo CharlieFirpo,

nutze "Array erstellen" aus der Array Palette und aktiviere die Eigenschaft "Eingänge verknüpfen" oder "in Array einfügen".
Hallo Harald

Zunächst mal danke für die Hilfe, das Problem ist aber, ich habe nur einen Ausgang,
an welchem bei jedem Durchlauf der FOR Schleife, ein anderer Datensatz zu je 50 Zeichen (0,1)
ausgegeben wird. Die Schleife wird 4x durchlaufen und wirft bei jedem Durchlauf einen anderen
Datensatz aus. Diese 4 Sätze brauche ich letztlich aber als einen großen, 200 stelligen Satz, in dem
alle 4 hintereinander stehen. Mein Gedanke war jetzt, bei jedem Durchlauf den jeweiligen Satz
in ein Array zu speichern, z.b. Index 0-3 und am Ende die vier Sätze zu verknüpfen.
Das wäre doch der Ansatz mit dem Schieberegister und den zwei FOR-Schleifen. Oder verstehe ich dein Vorhaben nicht?

Die innere Schleife ist die Datenquelle der 50 Werte, die äußere übernimmt dann das Einfügen in das Ausgabearray. Hast du es mal nachgebaut?
Hallo Charlie,

Zitat: bei jedem Durchlauf der FOR Schleife, ein anderer Datensatz zu je 50 Zeichen (0,1)
ausgegeben wird. Die Schleife wird 4x durchlaufen und wirft bei jedem Durchlauf einen anderen
Datensatz aus. Diese 4 Sätze brauche ich letztlich aber als einen großen, 200 stelligen Satz, in dem
alle 4 hintereinander stehen
Nimm einen Tunnel deiner FOR-Loop und setze ihn auf "Concatenating":
[attachment=62682]

@Woodeye:
InsertIntoArray ist die falsche Funktion, wenn es um das Anhängen von Daten an ein Array geht. Wenn du ein Array bauen willst, dann nimm bitte auch BuildArray…
Hallo Gerd,

stimmt natürlich!
Alternativ: zweimal mit Auto-Indexing sammeln und anschließend reshape von 2D- auf 1D-Array.

Gruß Holger
Guten Morgen!
Leider muss ich sagen, dass ich euren Ausführungen nicht ganz folgen bzw. das VI,
was Gerd zuletzt gepostet hat, nicht nachvollziehen kann. Noe
Ich hänge mal ein Bild meines aktuellen SubVI an, zur Erläuterung:
Es ist eine Übungsaufgabe, mit der ich Routine bei LabView sammeln möchte und es
geht um eine simple, 4-stellige Digitaluhr, die ich mit einem LED Panel realisieren möchte.
Links die vier Anschlüsse, sind jeweils die beiden Stunden bzw. die beiden Minutenwerte,
die ich mir aus der Systemzeit geholt habe. Da mein LED Panel 10h x 20b LEDs hat, für jede
Ziffer also 10h x 5b, habe ich die einzelnen Ziffern im Case in der Mitte nachgebaut und übertrage
bei jedem Minutenwechsel einen 200 stelligen Satz, in welchem die 4 Ziffern definiert sind.
Es soll jetzt so sein, dass das VI bei jedem Aufruf entsprechend der 4 Uhrzeitwerte,
also z.b. 14.30Uhr = 1 4 3 0, den Case nacheinander auf die aufgerufene Ziffer wechselt den 50 stelligen
Code in 1 und 0 ausgibt und am Ende die vier Sätze zu einem zusammenfügt. Es klappt auch zum Teil, d.h.
die vier Sätze kommen nacheinander am Array Ausgang an, aber es scheint sich mit jedem weiteren
Durchlauf zu summieren.......
Shift-Register mit leerem Array initialisieren.
Hallo Charlie,

Zitat:Leider muss ich sagen, dass ich euren Ausführungen nicht ganz folgen bzw. das VI,
was Gerd zuletzt gepostet hat, nicht nachvollziehen kann. Noe
Bei LabVIEW ist es immer hilfreich, ein VI anstatt nur eines Bildes eines VIs bereitzustellen.
Da du bisher auf VIs verzichtet hast, habe ich eben auch nur Bilder bereitgestellt…
(Wenn du ein VI anhängst, würde ich mich freuen, wenn du es für LV2019 bereitstellst: File->Save for Previous.)

Zu deinem Bild:
- beide (!) InsertIntoArray können/sollten durch BuildArray ersetzt werden.
- Statt BuildArray/ShiftRegister kannst du einen Tunnel verwenden, den du auf "Concatenating" konfigurierst…
- Die FOR-Loop benötigt keine Konstante am "N"-Eingang, stattdessen wird der Eingangstunnel auf "indizierend" gestellt!!!
- Was versteckt sich in den anderen Cases deiner Case-Struktur???
- Beim IndexArray nach der Case-Struktur reicht es aus, nur die erste Konstante "0" zu verdrahten, danach werden automatisch die nächsten Columns indiziert…
Seiten: 1 2
Referenz-URLs