LabVIEWForum.de - Problem: 2D-Array mit Schieberegister

LabVIEWForum.de

Normale Version: Problem: 2D-Array mit Schieberegister
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich brauche eine Schieberegister in dem ich ein 2D-Array aktuallisiere, durchsuche und Werte einfüge. Problem dabei ist, dass ich es mit einer Konstante initialisiert zum Laufen bekomme, aber natürlich das erhaltene Array immer aus dieser besteht. Allerdings, wenn man die Konstante entfernt, wird ein 1D-Array erwartet und alle spezifischen Funktionen funzen nicht mehr!!!
Anbei mal ein einfaches Beispiel was ich machen will. Wird die Konstante entfernt, funktionieren Teilarray und alle andere Funktionen die sich an die Dimension anpassen nicht mehr.
Meine Frage ist, wie ich das umgehen kann, ohne eine Konstante zu benutzen, und trotzdem mit dem 2D-Array arbeiten kann?
Häh?
Na ich verwalte ein 2D-Array, dass ich über ein Schieberegister immer aktualisieren möchte. Funktionen wie Teilarray passen sich ja die eingehende Dimension an. Das brauche ich weil ich eine Suche in einer bestimmten Spaklte durchführen muss bevor ich was einfüge. Doch wenn ich die Konstante am Anfang des Registers wegnehme, damit es nicht immer leer beginnt, vermutet das Programm ein 1D-Array was dann zu folgendem Fehler führt.
' schrieb:Na ich verwalte ein 2D-Array, dass ich über ein Schieberegister immer aktualisieren möchte.
Das Schieberegister (respektive der Inhalt, egal welchen Typs) muss aber mindestens einmal initialisiert werden, damit bei der ersten Verwendung des Schieberegisters bereits gültige Daten drinnen stehen. Wie willst du das realisieren?
' schrieb:Das Schieberegister (respektive der Inhalt, egal welchen Typs) muss aber mindestens einmal initialisiert werden, damit bei der ersten Verwendung des Schieberegisters bereits gültige Daten drinnen stehen. Wie willst du das realisieren?


Genau, oder man könnte mit Build Array neue Elemente auch innrhalb der Schleife hinzufügen. Replace Subset wird nicht funktionieren.
Klingt schon logisch, aber warum funktioniert dann das, auf dem Bild gezeigte......
Hier wird auch nichts initialisiert, und bis auf die Dimension ändert sich dabei doch auch nicht so viel.
Jede Eingabe wird immer einfach angehangen und das Array wächst.
' schrieb:aber warum funktioniert dann das, auf dem Bild gezeigte......
Weil die Array-Elemente INTUITIV 1D-förmig sind. Ohne was zu tun, kommt also ein 1D raus. Dadurch wird der Typ des Schieberegisters definiert. Das Intuitive ist ja der Vorteil von LV - was hier zu beachten ist.

Zitat:Hier wird auch nichts initialisiert,
Was prinzipiell falsch ist.
Danke für die Aufklärung, jetzt versteh ich das etwas besser. Allerdings beantwortet das nciht meine Frage, wie ich vorgehen müsste, wenn ich ein 2D-Array in einem solchen Schieberegister verwenden möchte. Bitte helft mir, ich muss schon bald eine erste Version präsentieren und würde dieses Feature einfach bis dahin sehr gerne drin haben.
Danke
' schrieb:Allerdings beantwortet das nciht meine Frage, wie ich vorgehen müsste, wenn ich ein 2D-Array in einem solchen Schieberegister verwenden möchte.
Bist du dir der Tatsache bewusst, dass der Inhalt des Schieberegisters einmalig mit einem gültigen Wert belegt werden muss? Irgendwann fängt auch eine kontinuierliche Datenhaltung an. Und genau zu diesem Beginn ist der Inhalt des Schieberegisters ansich ungültig. Du musst also einmalig "gültige Daten" reinschreiben, und sei es über eine "leere 2D-Konstante". (Dass bei Programmstart eine automatische Vorbesetzung gemacht wird, steht auf einem anderen Blatt).

Es gibt ein LV-Element, das bei erstmaligem Aufruf einen TRUE liefert und sonst FASLE. Verwende dieses Element als Eingang auf eine Case-Sequenz. Die Case-Sequenz bindest du in den Datenfluß des 2D-Array innerhalb der While-Schleife ein. Im TRUE-Case gibt du die 2D-Konstante auf den Sequenz-Ausgang. Im FALSE-Case leitest du den 2D-Datenfluß nur durch.
Ist mir klar, nur hats halt den angesprochenen Fehler gebracht. Dieses Element kenn ich nicht. Ich suche es schon, aber gefunden habe ich es noch nicht. Sicher, dass es ein solches Element auch schon in LabVIEW 7.0 gab? Genau so ein Element benötige ich, das ist mir klar, aber wie heisst es denn?
Seiten: 1 2
Referenz-URLs