web-dev-qa-db-fra.com

Julia: ajouter à un vecteur vide

J'aimerais créer un vecteur vide et y ajouter un tableau dans Julia. Comment je fais ça?

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

résulte en

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

Merci.

14
Anarcho-Chossid

Votre variable x ne contient pas un tableau, mais un type.

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

Vous pouvez créer un tableau sous la forme Array(Float64, n) (Mais attention, il n’est pas initialisé: il contient des valeurs arbitraires) ou zeros(Float64, n), Où n est la taille souhaitée.

Puisque Float64 est la valeur par défaut, nous pouvons le laisser de côté. Votre exemple devient:

x = zeros(0)
append!( x, Rand(10) )
20
Vincent Zoonekynd

Vous pouvez initialiser un vecteur vide de n'importe quel type en tapant le type devant []. Comme:

Float64[] # Returns what you want
Array{Float64, 2}[] # Vector of Array{Float64,2}
Any[] # Can contain anything
9
Daniel Høegh

Nouvelle réponse pour Julia 1. append! est obsolète, vous devez maintenant utiliser Push! (array, element) pour ajouter des éléments à un tableau

my_stuff = zeros()
Push!(my_stuff, "new element")
0
chasmani