2015-02-15 9 views
11

Boş bir vektör oluşturmak ve ona Julia'da bir dizi eklemek istiyorum. Bunu nasıl yaparım?Julia: Boş bir vektöre ekle

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

teşekkürler

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

sonuçlanır.

cevap

16

x değişkeniniz bir diziyi değil, bir tipi içermiyor.

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

için Array(Float64, n) gibi bir dizi oluşturmak (ancak başlatılmamış, dikkat: keyfi değerleri içeren) ya da zeros(Float64, n), n istenen boyutudur.

Varsayılan olarak, Float64 varsayılan olduğundan, onu dışarıda bırakabiliriz. Sizin örnek olur:

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

Bunu bir 2B dizisine nasıl genişletirsiniz? Örneğin, ben aynı türden boş bir diziye eklemek istediğim bir dizi Array {Float64,2} türüne sahibim ama hatayı alamıyorum 'HATA: MethodError: 'append! :: Array {Float64,2}, :: Array {Float64,2}) '. – lara

6

Bunu [] önünde türünü yazarak herhangi türde bir boş Vector başlatabilir. Beğen:

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