LabVIEWForum.de
Array Dimension hochzählen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Array Dimension hochzählen (/Thread-Array-Dimension-hochzaehlen)



Array Dimension hochzählen - WinniePooh - 07.04.2011 10:29

Hallo Liebe LabView- Gemeinde,

ich möchte mit meiner Messung mehrere Messwerte in ein Array speichern.
Das heißt, im 1. Messverlauf soll mein Programm die Werte in der 1. Dimension vom Array speichern.
Im 2. Messverlauf soll das Programm die Werte in die 2. Dimension speichern.
und so weiter bis xx.

Die Frage ist nun die Wie ich die Arrays dazu bringen kann die Dimensionen automatisch hochzählen zulassen.

Anbei sende ich zum Verdeutlichen ein Bild dazu, was ich bisher gemacht habe.
Dies funktioniert NICHT! Leider Big Grin

Danke im Voraus für das Feedback.

Gruß Winnie


RE: Array Dimension hochzählen - GerdW - 07.04.2011 10:41

Hallo Winnie,

vielleicht solltest du deine Formulierungen mal konkretisieren:
Du redest von "Dimensionen" - meinst aber sicherlich "Index"... Dazu ein Array in der benötigten Größe initialisieren und dann per ReplaceArraySubset den Messwert an der richtigen Stelle (=Index) eintragen!

- Wozu das ReshapeArray, wenn du als Zielgröße 0 (!) oder 1 Element vorgibst?


RE: Array Dimension hochzählen - Lucki - 07.04.2011 12:43

GerdW hats ja schon beanstandet, aber weil das so oft falsch gesehen wird, noch mal mit anderen Worten:
(07.04.2011 10:29 )WinniePooh schrieb:  Das heißt, im 1. Messverlauf soll mein Programm die Werte in der 1. Dimension vom Array speichern.
In Ordnung. (Besser aber, man legt von vornherein ein 2D Array mit zunächst nur einer Spalte an, Grund siehe unten)
Zitat:Im 2. Messverlauf soll das Programm die Werte in die 2. Dimension speichern.
Auch OK. Aus dem Array wird ein 2D Array mit 2 Spalten
Zitat:und so weiter bis xx.
-.. Und jetzt kommts: die Ausweitung auf xx Messreihen liefert kein Array mit xx Dimensionen, sondern ein 2D Array mit xx Spalten.
(Anmerkungen: die Rolle von Zeilen und Spalten kann auch vertauscht sein)


RE: Array Dimension hochzählen - WinniePooh - 07.04.2011 13:49

Ja, genau das meine ich Lucki,
wie kann man dies realisieren?
Wie kann ich ihm sagen speichere mir die nächsten Werte in die nächste Spalte?

Gruß

@GerdW
Das mit dem Reshape muss ich mir nochmals angucken


RE: Array Dimension hochzählen - Schwand - 07.04.2011 14:55

Hi, mal ein kleines Beispiel, hoffe, das passt so?

Grüßle
S.


RE: Array Dimension hochzählen - Lucki - 07.04.2011 17:55

Beispiel wurde ja von Schwand schon gegeben - evtl. muß das OpenG-VI durch normalen Zufallsgenerator ersetzt werden.
Noch kleine Anmerkung am Rande: So wie es hier gemacht wird - jede neue Messreihe ist einen neue Zeile - so wird es auch in den Express-Vis gemacht, oder bei der Datenerfassung mit DAQmx (jeder Kanal hat eigene Zeile).
Beim Rest der Welt ist es eher üblich, daß jede Messreihe ein eigene Spalte hat. Konvertierung mit "2D Array transponieren" jederzeit möglich.


RE: Array Dimension hochzählen - WinniePooh - 12.04.2011 17:05

ja genau das mein ich auch... aber ich kriege das mit meinen Programm nicht hin... keine ahnung

hat jemand da lösungsansätze... das programm lade ich kommentiert mal hoch...

gruß

Winnie


RE: Array Dimension hochzählen - GerdW - 12.04.2011 20:40

Hallo Winnie,

puh, dein VI ist ja ganz schön mit RubeGoldbergs durchsetzt...

Ich habe mal versucht, da etwas Ordnung hineinzubringen. Du hattest doch schon ein BuildArray drin, mit dem du jeweils einen neuen Vektor mit Messdaten an dein 2D-Array anhängst???
Was mir noch rätselhaft ist:
- wieso testet du die Arraygröße eines 2D-Array mit 3 (!) Werten?
- deine Zählerlogik erschließt sich mir nicht...
- warum in jedem Hauptschleifendurchlauf den Task neu anlegen und killen?
- warum versteckte Arrayindicators?
- warum 2 Anzeige, die das gleiche Label haben? Wie soll man die im BD unterscheiden können?

Ich sehe gerade: du hattest einen quasi-Doppelpost aufgemacht, wo dir die Unsinnigkeit von RubeGoldbergs schon aufgezeigt wurde...


RE: Array Dimension hochzählen - Der_Elch - 12.04.2011 21:04

(12.04.2011 20:40 )GerdW schrieb:  Hallo Winnie,

puh, dein VI ist ja ganz schön mit RubeGoldbergs durchsetzt...

Ich habe mal versucht, da etwas Ordnung hineinzubringen. Du hattest doch schon ein BuildArray drin, mit dem du jeweils einen neuen Vektor mit Messdaten an dein 2D-Array anhängst???
Was mir noch rätselhaft ist:
- wieso testet du die Arraygröße eines 2D-Array mit 3 (!) Werten?
- deine Zählerlogik erschließt sich mir nicht...
- warum in jedem Hauptschleifendurchlauf den Task neu anlegen und killen?
- warum versteckte Arrayindicators?
- warum 2 Anzeige, die das gleiche Label haben? Wie soll man die im BD unterscheiden können?
Hallo Winnie,
Noch eine kleine Zusatzfrage von mir:
- Wieso ist die innere while-Schleife eine while Schleife? Wenn du immer die letzten 100 Werte aus dem Array nur nimmst, gehst du davon aus das die while-Schleife nur 100mal durchlaufen wird. Somit wäre doch eine For-Schleife zielführender und du ersparst dir den gesamten if-Ausdruck in der Schleife.


RE: Array Dimension hochzählen - WinniePooh - 18.04.2011 09:34

Hallo Leute,
ja vieles in meiner Programmierung ist doppelt.
Einfach weil man die Übersicht verloren hat, dies wird alles wieder berichtigt.
Aber danke dir für die Implentierung der Funktion.
Hat super geklappt.
Die Zählerlogik ist kompliziert gewählt, weil ich mich vorher nicht mit
den Schieberegistern auseinandergesetzt habe und wie es aussieht sind sie ein
mächtiges Werkzeug in LabView, besonders wenn man mit Arrays arbeitet.

Gruß Winnie