2016-08-05 31 views
1

Gibt es eine einfache Möglichkeit, einen Vektor in ein Array umzuformen, in dem die "Füllung" nach Zeilen erfolgt?Umformen "Füllen" nach Zeile

Genauer gesagt, denke ich habe einen Vektor

v = collect(1:8) 

reshape die resultierende Anordnung durch Spalte "füllt":

reshape(v, (2,2,2)) 

2x2x2 Array{Int64,3}: 
[:, :, 1] = 
1 3 
2 4 

[:, :, 2] = 
5 7 
6 8 

Aber ich möchte bekommen:

a = Array{Int}(2,2,2) 
a[:, :, 1] = [1 2; 3 4] 
a[:, :, 2] = [5 6; 7 8] 

a 
2x2x2 Array{Int64,3}: 
[:, :, 1] = 
1 2 
3 4 

[:, :, 2] = 
5 6 
7 8 

Diese wäre eine schöne Option zu reshape hinzuzufügen.

+2

nahm Sie können: permuedims (v, (2,1,3)) auf das Ergebnis. – DNF

Antwort

3
mapslices(transpose,reshape(v, (2,2,2)),[1,2]) 

Das Schlüsselwort, das Sie vermissten, ist "transpose". Der Rest, den ich gerade von