2015-02-15 16 views
11

Vorrei creare un vettore vuoto e aggiungere a esso un array in Julia. Come lo faccio?Julia: aggiungi a un vettore vuoto

x = Vector{Float64} 
append!(x, rand(10)) 

risultati in

`append!` has no method matching append!(::Type{Array{Float64,1}}, ::Array{Float64,1}) 

Grazie.

risposta

16

La variabile x non contiene un array ma un tipo.

x = Vector{Float64} 
typeof(x) # DataType 

È possibile creare una matrice come Array(Float64, n) (ma attenzione, è inizializzata: contiene valori arbitrari) o zeros(Float64, n), dove n è la dimensione desiderata.

Poiché Float64 è l'impostazione predefinita, possiamo lasciarlo fuori. Il vostro esempio diventa:

x = zeros(0) 
append!(x, rand(10)) 
+0

Come si estende a un array 2D? Ad esempio, ho un numero di tipo Array {Float64,2} che voglio aggiungere a un array vuoto dello stesso tipo, ma sto ottenendo l'errore 'ERROR: MethodError: 'append!' Non ha alcun metodo corrispondente append! :: Array {Float64,2}, :: Array {Float64,2}) '. – lara

6

è possibile inizializzare un vettore vuoto di qualsiasi tipo digitando il tipo di fronte a []. Come:

Float64[] # Returns what you want 
Array{Float64, 2}[] # Vector of Array{Float64,2} 
Any[] # Can contain anything 
Problemi correlati