LabVIEWForum.de - Erstellen eines Großen Array (ohne Autoindizierung)

LabVIEWForum.de

Normale Version: Erstellen eines Großen Array (ohne Autoindizierung)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo Allerseits
ich bin absoluter LabVIEWneuling und brauche dringend Hilfe (bin am verzweifeln). Ich habe dass Problem dass ich in einer for-Schleife 4 Speicherzellen (Leitungen) habe - in der ersten steht ein Wert den ich speichern will, in zwei aneren eine Zeilen und eine Spaltenangabe in welche dieser Wert in einem Tabelle/Array gespeichert werdn soll, und in der vierten ein boolscher Wert der angiebt, wann in diesen Speicherzellen etwas Sinnfolles steht (und gespeichert werden soll). Bei jedem Schleifendurchlauf wenn dieser Wert 4 auf "true" steht soll nun der Wert der in Zelle 1 in einen Array geschrieben werden - an der stelle die Zelle 2 und 3 angeben. Autoindizierung funktioneirte daher nicht, da ja nicht jeder Wert gespeichert werden soll. auch mit Schieberegistern ist das problem nicht lösbar, da der zu erstellende Array ca 5 MB groß ist (5*250000), und die Schleife zeimlich heufig durchläuft (ca2 mio.). Das heist wenn ich das problem mit schiebereigister lösen will braucht dass ewig (im bereich tage). Kennt jemand eine Möglichkeit einen Wert aus ene For-Schleife heraus an einen Array zu übergeben ohne den Array zu offnen??? Vielen dank für eine Antwort.
Dominik
Also, eigentlich kein Problem:

Du musst das Array vor der For-Schleife erstellen (denn die Größe weisst du ja / Funktion "Initialize Array"). Und dann per Schieberegister in die Schleife übergeben. Und innerhalb der Schleife per Replace-Array-Subset bei Bedarf diesen einen Wert ersetzen. Das ersetzen sollte auch in LV sehr schnell gehen.

MfG, Jens

P.S.: :verschoben1:FalschesForum

EDIT: Hier ein Bsp.:

[attachment=11595]
Lv82_img[attachment=11594]
Hallo Jens
erstmal vielen Danke für die schlelle Antwort. leider ist das genau das was ich mache (Schieberegister - indizierung von ausen) - und wie schon gesagt, das dauert ewig. (ich denke weil das die schleife jede ausführung den rießigen Array öffnen muss)
Hast du noch eine andere Idee (Bitte)
Dominik
@Dominik: Zeig doch mal dein VI.

VDB
Kann ich nicht bestätigen, hatte nach ca. 5 Sekunden schon locker über 10 Mio. Durchläufe (s. Bsp-VI).

Vielleicht braucht das Erstellen der Daten, die du einfügen willst, solange? Das "Replace-Array-Subset" ist eigentlich die schnellste Methode, einen Wert in einem bestehendem Array zu ersetzen.

Und so viel ist 1,25 Mio Datenwerte auch nicht.

Oder schreibst du innerhalb deiner Schleife dauernd was ins Frontpanel? Das kostet auch Zeit.

Ansonsten: VI's oder Screenshots hochladen.

MfG, Jens
Hallo Jens
Musste eine Zeitlang weg
hier ist der programmteil um den es geht. (wie schon gesagt, der array ist riesig) - das ganze programm möchte ich gerade niemanden antun (ist etwas unübersichtlich)
Dominik
' schrieb:Tschuldigung- irgendetwas ha gerade mit dem hochladen nicht funktioniert
Jetzt müsste es funktioneiren[attachment=11601][attachment=11601]
Sehe ich das richtig: 2D-Array mit Datentyp String? Welche Größe haben denn die Dimensionen? Wie kommst du denn auf eine Größe von 5MB?
ja, siehst du richtig- und die größe ist 250000 auf 5. die Stings in jedem feld haben im allg 7 zeichen (also 250000*5*7=8,75 MB)
dsag ja, etwas größer (was unter anderem auch ein grund ist warum ich es mit LabVIEW machen will - Excel schafft soviele Zeilen nicht)
Danke
Dominik
Seiten: 1 2 3
Referenz-URLs