LabVIEWForum.de - Werte in einem Array tauschen

LabVIEWForum.de

Normale Version: Werte in einem Array tauschen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

Gibt es die Möglichkeit in einem Array bestimmte Werte zu tauschen? Prinzipiell möchte ich folgendes machen:

Ich habe ein Array

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
und möchte die Werte des Arrays erst einmal so tauschen, dass folgendes Array entsteht:

6 7 8 4
5 1 2 3
14 15 16 12
13 9 10 11

Gibt es da eventuell schon eine Funktion, die ich einfach übersehen habe?

Mein großes Ziel ist es später nach einem bestimmten Algorithmus die Werte in dem Array zu ändern. Wäre also super wenn das evtl. beachtet werden könnte.

Für den Anfang und das verständnis würde die Lösung für mein erstes Beispiel reichen.

Danke schon mal.

lG Banman
Hi Banman,

eine Möglichkeit wäre diese.
Diese Mühe, den Algorithums zu ergründen, würde ich mir allerdings nicht machen. Einfach die Elemente dorthin platzieren, wo sie im Ausgangs-Array sein sollen:
[attachment=33940]
(24.05.2011 14:05 )Lucki schrieb: [ -> ]Diese Mühe, den Algorithums zu ergründen, würde ich mir allerdings nicht machen. Einfach die Elemente dorthin platzieren, wo sie im Ausgangs-Array sein sollen:

ok da gebe ich mich geschlagen, darauf bin ich leider nicht gekommen...
Hallo

Danke für die beiden Vorschläge. Der vorschlag von snuz kommt eher in Frage bzw. ist für mein Beispiel genau das was ich wollte. Leider komme ich bei dem Beispiel von Snuz nicht darauf, wie ich das Array erweitern kann, sodass ich z.B. ein Array der Größe 1600*1200 manipulieren kann.

Vielleicht habe ich auch nicht genügend zu meinem Vorhaben gesagt. Sorry.

Letztendlich möchte ich 3D bilder mit Hilfe der Lenticulartechnik erstellen. Dazu wird ein Bild aus verschiedenen Positionen aufgenommen. Diese Bilder werden verschmolzen, indem bestimmte Pixel jedes Bildes in ein verschmolzenes Bild zusammengefügt wird. Die Positioniereung der Pixel erfolgt nach einem Bestimmten Algorithmus. Aus diesem Grund brauche ich eine Möglichkeit ein Bild in seine Pixel aufzulösen und in ein Array zu schreiben (hab ich aber schon geschafft) und die Pixel neu anzuordnen.

Hat da jemand villeicht eine Idee??

Und was ich noch bräuchte wäre die Möglichkeit die Pixel in ihre Subpixel (RGB) aufzulösen und neu zu ordnen.

Ich hoffe ich habe mein Problem verständlich geschildert und jemand kann mir helfen.

lG banman
Hallo banman,

die For-Schleife wird zwei mal ausgeführt (s.B.roter Kreis), wenn Du hier z.B. "5" einstellst, kannst Du das Array weiter umstellen lasse. Füge neue Werte ein (17...18...etc), wenn Du keine Werte eingibst, enthält das umgestellte Array nur 0en, da es ja das Array weiter abarbeiten möchte, aber keine weiteren Werte vorhanden sind. Du musst auch noch auf die Logik aus der zweiten For-Schleife achten (s.B. grüner Kreis), dies beschreibt eben, dass bei jedem Durchlauf das "zweier" Intervall aus deinen Beispiel Werten beachtet wird.

Gruß snuz

Oh sehe gerade, dass das garnicht so einfach ist...
Ok also, wenn Du die For-Schleife so wie ich es beschrieben habe änderst, dann macht der das auch so. Das Problem hier ist nicht die "Umstellrei", sondern er zeigt dir die Werte nicht an, er "erinnert" sich quasi nur an die beiden letzten Teile die er umgestellt hat. Du musst also einfach dafür sorgen, das er die Werte behält (er zeigt dir nur ein 4x4 Array an).
Intelligent wäre, wenn man die Konstanten für die Schleifendurchläufe entfernt und durch die Längen der ienzelnen Dimensionen ersetzt! Dann kann man anschließen was man will und bekommt immer das richtige raus. Ohne Nullen oder sonstiges.
(27.05.2011 08:52 )banman schrieb: [ -> ]Die Positioniereung der Pixel erfolgt nach einem Bestimmten Algorithmus.
Hat da jemand villeicht eine Idee??

Ja, jede Menge Ideen, wenn Du nur den Algorithus verraten würdest.
Aus dem kleinen Beispiel lese ich heraus:

1.) bei den ungeradzahligen Zeilen 1,3,.. bleibt das jeweils letzte Element unverändert
2.) bei den geradzahlingen Zeilen 2,4,.. bleibt das jeweils erste Element unverändert
3.) Die anderen Elemente von geraden und ungeraden Zeilen werden miteinander vertauscht, also 1<->2, 3<->4,..

Ist das der Algorithmus?



(28.05.2011 07:52 )Lucki schrieb: [ -> ][quote='banman' pid='119711' dateline='1306482767']
Die Positioniereung der Pixel erfolgt nach einem Bestimmten Algorithmus.
Hat da jemand villeicht eine Idee??

Ja, jede Menge Ideen, wenn Du nur den Algorithus verraten würdest.
Aus dem kleinen Beispiel lese ich heraus:

1.) bei den ungeradzahligen Zeilen 1,3,.. bleibt das jeweils letzte Element unverändert
2.) bei den geradzahlingen Zeilen 2,4,.. bleibt das jeweils erste Element unverändert
3.) Die anderen Elemente von geraden und ungeraden Zeilen werden miteinander vertauscht, also 1<->2, 3<->4,..

Ist das der Algorithmus?
Referenz-URLs