Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1252to1256
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Arrays umwandeln

Arrays umwandeln
Heiko
Hallo, Leute,
ich steh gerade auf dem Schlauch...
Ich will mit einer For-Next Schleife ein eindimensionales Array in ein 2-dimensionales umwandeln in der Form:
Arr_1(i, j) = Arr_2(k)
wobei kmax = imax * jmax
Das Bloede ist, ich muss das mit einer einzigen Schleife hinkriegen, also:
For k = 1 to kmax
Arr_1(i, j) = Arr_2(k)
next
Eine Reihe von z.B. 9 Zahlen (kmax = 9) soll also dann so aussehen
Arr_1(1-3,1-3) = Arr_2(1-9)
Ich hab ne Denkblockade. Sioo schwer kanns nicht sein. Freue mich auf Ideen!
Danke, Heiko

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Arrays umwandeln
23.02.2012 19:10:25
Reinhard
Hallo Heiko,
muß i=j sein?
Gruß
Reinhard
AW: Arrays umwandeln
23.02.2012 20:50:07
Heiko
hi Reinhard,
...nee... kann sein, muss aber nicht...
AW: Arrays umwandeln
23.02.2012 19:14:09
fcs
Hallo Heiko,
wieso muss es eine Schleife sein? Ich wüßte ncit wie das funktionieren soll. es sei denn man käme hier mit ein paar sehr gewizten Matrix-Operationen auf den Plan, die z.B. jeweils 3 Werte der 1D-Matrix in eine Spalte oder Zeile der 2D-Matrix schreiben.
Mit der Reihenfolge der i- bzw. j-For-Schleife legst du fest, ob die Werte der 1D-Matrix zeilen- oder spaltenweise in die 2D-marix geschrieben werden.
Gruß
Franz
Sub aatest()
Dim Arr_1(), Arr_2()
Dim k As Long, kmax As Long
Dim i As Long, iMax As Long, j As Long, jMax As Long
kmax = 9:  iMax = 3: jMax = 3
ReDim Arr_2(1 To kmax)
ReDim Arr_1(1 To iMax, 1 To jMax)
k = 0
For j = 1 To jMax
For i = 1 To iMax
k = k + 1
Arr_1(i, j) = Arr_2(k)
Next
Next
End Sub

Anzeige
AW: Arrays umwandeln
23.02.2012 20:54:50
Heiko
hi, Franz, danke fuer die Idee.
Das Doofe ist, dass es irgendwie mit einer Schleife gehen muss. Mit 2 verschachtelten hab ichs schon geschafft.
Leider laesst der uebrige Code nur eine Schleife zu (Downhill-Simplex Algorithmus). Den kann ich nicht so einfach aendern. Der will eben alle Parameter aus einem eindimensionalen Array, die ich aus einem 2-dimensionalen uebertragen muss und umgekehrt...
AW: Arrays umwandeln
23.02.2012 19:17:51
Christian
Hallo Heiko,
ein Vorschlag:
Option Explicit
Sub testIt()
Dim vntSrc, vntDst(2, 2)
Dim i&
vntSrc = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
For i = 0 To UBound(vntSrc)
vntDst(i \ 3, i Mod 3) = vntSrc(i)
Next
End Sub

Kommst du damit klar?
Gruß
Christian
Anzeige
AW: Arrays umwandeln
23.02.2012 20:58:59
Heiko
hi, Christian,
das sieht gut aus... Vielen Dank
An MOD hatte ich auch schon gedacht, aber irgendwie "vergessen" dass bei integer Werten auch Ganze Zahlen am Ende rauskommen und keine Realzahlen... Stimmt...
Array umschaufeln
23.02.2012 19:58:20
Erich
Hi,
noch eine mögliche Formulierung - mal mit 5 Spalten:

Option Explicit
Sub abtest()
Dim iMax As Long, jMax As Long, kmax As Long
Dim Arr_1(), Arr_2(), k As Long
iMax = 3
jMax = 5
kmax = iMax * jMax
ReDim Arr_2(1 To kmax)
For k = 1 To kmax       ' Testwerte
Arr_2(k) = k * k     ' Testwerte
Next k                  ' Testwerte
ReDim Arr_1(1 To iMax, 1 To jMax)
For k = 1 To kmax
Arr_1(1 + (k - 1) Mod iMax, 1 + (k - 1) \ iMax) = Arr_2(k)
Next k
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Array umschaufeln
23.02.2012 20:38:26
Christian
Hallo Erich,
ich sehe keinen Vorteil darin, die Arrays erst auf Basis 1 zu formulieren und diese anschließend wieder in jedem Durchlauf zurückzurechnen. Das Prinzip ist das gleiche - Ganzzahl und Rest.
Grüße
Christian
@Christian
23.02.2012 23:46:14
Erich
Hi Christian,
einen solchen Vorteil sehe ich auch nicht. Ich habe mich etwas enger an Heikos Vorgabe orientiert
und das von dir schon dargestellte Prinzip nur noch mal ein wenig anders formuliert.
Manchen Menschen sind einsbasierte Arrays lieber als nullbasierte, auch wenn nullbasiert oft praktischer ist.
Grüße aus Kamp-Lintfort von Erich
AW: Array umschaufeln
23.02.2012 21:04:18
Heiko
Hi, Erich,
vielen Dank!
Nach der drittletzten Zeile hab ich gesucht. Das ist es! Super!
Gruesse aus Vancouver von Heiko ;-)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige