Erstellen eines Großen Array (ohne Autoindizierung)
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Erstellen eines Großen Array (ohne Autoindizierung)
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
Anzeige
13.03.2008, 10:05 (Dieser Beitrag wurde zuletzt bearbeitet: 13.03.2008 10:20 von jg.)
Erstellen eines Großen Array (ohne Autoindizierung)
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.
Erstellen eines Großen Array (ohne Autoindizierung)
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
13.03.2008, 10:33 (Dieser Beitrag wurde zuletzt bearbeitet: 13.03.2008 10:34 von VDB.)
Erstellen eines Großen Array (ohne Autoindizierung)
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Erstellen eines Großen Array (ohne Autoindizierung)
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
Erstellen eines Großen Array (ohne Autoindizierung)
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