LabVIEWForum.de
Array umsortieren und Frontpanelgröße - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Array umsortieren und Frontpanelgröße (/Thread-Array-umsortieren-und-Frontpanelgroesse)



Array umsortieren und Frontpanelgröße - timo_4711 - 13.10.2008 07:22

Hallo liebe User,
ich bin ein LabVIEW-Neuling und habe im Moment folgendes Problem:

ich generiere ein 2-dim.Array (matrix) und möchte einfach die Anordnung der Zeilen verändern:
habe zum Beispiel:
1 2 3
4 5 6
7 8 9

und möchte:

9 8 7
6 5 4
3 2 1

also in x und y gespiegelt.
Wie kann ich das bewerkstelligen?
(die echte Matrixgröße beträgt 99x99)

und:
Wenn ich ein Frontpanel erstellt habe (Registrierkarte), dann wird beim Ausführen des Programms immer
der gesamte Bildschirm ausgefüllt (also der ungenutzte Bereich rundherum ist grau).
Wie vermeide ich das?
Kann ich einen automatischen Bildwechsel von dem ersten Reiter der Registrierkarte auf den zweiten
durch einen ok-Button-klick im ersten Reiter erreichen?


grüsse timo


Array umsortieren und Frontpanelgröße - Zonan - 13.10.2008 07:38

Die schnellste, aber wohl nicht sauberste Lösung ist:

du indexierst den 2d-Array über ne for-schleife, dadrin drehst du den 1D-Array um ("reverse 1D Array"-Funktion), nach der Schleife musst du den neuen 2D-Array "drehen" über die transpose-Fkt. Dann wieder For-Schleife mit reverse Array, und am Ende noch mal zurück "drehen"

Siehe bsp. VI (LV 8.5.1)


Geht bestimmt auch einfacher oder schneller....


Array umsortieren und Frontpanelgröße - Y-P - 13.10.2008 07:48

Das mit dem Spiegeln kannst Du z.B. so machen. Das habe ich Dir auf die Schnelle, ohne groß zu überlegen, zusammengeklickt, von daher kann es sein, dass es auch einfacher geht.

[attachment=14795]
Lv85_img

Das Problem mit dem FP habe ich nicht verstanden.

Gruß Markus


Array umsortieren und Frontpanelgröße - Lucki - 13.10.2008 09:58

' schrieb:Wenn ich ein Frontpanel erstellt habe (Registrierkarte), dann wird beim Ausführen des Programms immer
der gesamte Bildschirm ausgefüllt (also der ungenutzte Bereich rundherum ist grau).
Wie vermeide ich das?
Kann ich einen automatischen Bildwechsel von dem ersten Reiter der Registrierkarte auf den zweiten
durch einen ok-Button-klick im ersten Reiter erreichen?
grüsse timo
Das sind zwei Fragen:
1. Wenn Du das FP-Fenster nur genau so groß machst wie es tatsächlich gebraucht wird und Du das abspeicherst, dann wird das VI auch beim nächsten Aufruf nur in dieser Größe aufgemacht werden.
2. Ja das geht. Du kannst im BD vom Registerelement lokale Variable mit Schreibzugriff erstellen, oder auch das Element selbst in eine Anzeige umwandeln und direkt beschreiben.

Möchte Dich auch darauf hinweisen, daß es unter Mathematikneare Algebra alle erdenklichen Matrixoperationen gibt, die sich auch auf 2D-Arrays anwenden kannst. Könnte sein, daß da für Dich etwas Passendes dabei ist.

Ansonsten wäre eine Alternative zu den oben schon genannten Lösungen der direkte Austausch der Elemente:
[attachment=14800]


Array umsortieren und Frontpanelgröße - MikeS81 - 13.10.2008 17:32

Hallo zusammen,
hier mal ein Beispiel ohne Schleife.

Mike


Array umsortieren und Frontpanelgröße - timo_4711 - 13.10.2008 18:00

Hallo Leute,
erst einmal vielen Dank das ihr so schnell geantwortet habt!
ich sag`s mal so: ..spricht für ein gut besuchtes, und vor allem erntszunehmendes, Forum
(...war also ein super tipp meines freundes)
all in one: `find ich super!

' schrieb:Das sind zwei Fragen:
1. Wenn Du das FP-Fenster nur genau so groß machst wie es tatsächlich gebraucht wird und Du das abspeicherst, dann wird das VI auch beim nächsten Aufruf nur in dieser Größe aufgemacht werden.
2. Ja das geht. Du kannst im BD vom Registerelement lokale Variable mit Schreibzugriff erstellen, oder auch das Element selbst in eine Anzeige umwandeln und direkt beschreiben.

Möchte Dich auch darauf hinweisen, daß es unter Mathematikneare Algebra alle erdenklichen Matrixoperationen gibt, die sich auch auf 2D-Arrays anwenden kannst. Könnte sein, daß da für Dich etwas Passendes dabei ist.

die Variante von Lucki habe ich geade "eingebaut" und ..it works.
Die Matrixoperationen habe ich gefunden. Das gibt ja völlig neue Möglichkeiten!
( ..: habe bis letzte Woche noch mit LV6.0 gearbeitet)

zum theme mit der Registrierkarte:
zu 1.) verstanden; aber der graue Bereich (ich habe nur zwei Reiter) bleibt dann grau, oder?
Was geschieht damit, wenn ich daraus eine .exe machen möchte? Bleibt dann der freie Bereich (oben rechts) mit dem Karomuster belegt?
zu 2.) Sorry, aber das verstehe ich leider noch nicht. Soll ich im BD mittels Rechtsklick die Datenbindung manipulieren?
(was ich eigentlich will: Habe FP als RKarte mit zwei Reitern. Wenn die Einstellungen im ersten Reiter erledigt sind, dann soll der user auf "ok" klicken (whileschleife) und es soll der zweite Reiterinhalt angezeigt werden)

grüsse
timo


Array umsortieren und Frontpanelgröße - jg - 13.10.2008 21:53

' schrieb:zum theme mit der Registrierkarte:
zu 1.) verstanden; aber der graue Bereich (ich habe nur zwei Reiter) bleibt dann grau, oder?
Was geschieht damit, wenn ich daraus eine .exe machen möchte? Bleibt dann der freie Bereich (oben rechts) mit dem Karomuster belegt?
Verstehe ich richtig, du meinst das Positionsraster? Das dient in der IDE doch nur als Hilfe, ist schon dann nicht mehr vorhanden, wenn du ein VI innerhalb der IDE ausführst. (in einer Exe sowieso nicht).

Die Größe und generelle Anzeige kannst du übrigens selber einstellen, unter Tools->Options->Alignment Grid.

Gruß, Jens


Array umsortieren und Frontpanelgröße - Lucki - 14.10.2008 07:24

' schrieb:hier mal ein Beispiel ohne Schleife.
Von den gezeigten Beispielen vergebe ich Dir hiermit kraft meines Amtes den ersten Preis 2hands Herzlichen Glückwunsch!
Gruß Ludwig