2014-07-02 2 views
6

ich ein Array d haben, die ein Array von Schwimmern enthält:Julia: Transforming ein Array von Arrays in einem 2-dimensionalen Array

julia> d 
99-element Array{Array{Float64,1},1}: 
... 

Ich versuche, es in einen 2-dimensionalen Array zu konvertieren, und Ich habe erfolgreich mein Ziel erreicht mit:

data = Array(Float64,length(d),length(d[1])) 
for i in 1:length(d) 
    for j in 1:length(d[1]) 
     data[i,j] = d[i][j] 
    end 
end 

Gibt es eine einfachere Möglichkeit, dies zu tun?

Antwort

10

hcat(d...) und vcat(d...) sollte tun, was Sie wollen.

+0

@scry Können Sie das näher ausführen? Die Frage betrifft die Umwandlung eines 1d-Arrays von 1d-Arrays in ein 2d-Array. Die vorgeschriebene Methode funktioniert. – ivarne

+2

Ich möchte nur darauf hinweisen, dass die "..." ist hier signifikant, es wird [splat] (http://docs.julaulang.org/en/release-0.3/manual/faq/#what-does-the- operator-tun) die Argumente für die Funktion (danke @MattB). Ich schrieb (und löschte) eine irreführende Antwort, weil ich nicht wusste, dass sie wörtlich verwendet werden sollten. – scry

+0

Um eine Matrix in der gleichen Form zu erhalten, nehmen Sie die Transponierte des Ergebnisses von hcat: 'hcat (d ...) '' – scry