空のベクターを作成し、それにJuliaの配列を追加したいと思います。それ、どうやったら出来るの?
x = Vector{Float64}
append!(x, Rand(10))
結果は
`append!` has no method matching append!(::Type{Array{Float64,1}}, ::Array{Float64,1})
ありがとう。
変数x
には配列ではなく型が含まれています。
_x = Vector{Float64}
typeof(x) # DataType
_
配列はArray(Float64, n)
(ただし、初期化されていないため、任意の値が含まれます)またはzeros(Float64, n)
として作成できます。ここで、n
は目的のサイズです。
_Float64
_がデフォルトなので、省略できます。あなたの例は次のようになります:
_x = zeros(0)
append!( x, Rand(10) )
_
[]の前に型を入力することにより、任意の型の空のベクターを初期化できます。お気に入り:
Float64[] # Returns what you want
Array{Float64, 2}[] # Vector of Array{Float64,2}
Any[] # Can contain anything
私はジュリアにやや初心者で、同様のエラーが発生した後、この質問に出くわしました。 Juliaバージョン1.2.0の元の質問に答えるために、不足しているのは_()
_だけです。
_x = Vector{Float64}()
append!(x, Rand(10))
_
このソリューションは(x=zeros(0)
とは異なり)、他のデータ型でも機能します。たとえば、辞書を保存するための空のベクターを作成するには、以下を使用します。
_d = Vector{Dict}()
Push!(d, Dict("a"=>1, "b"=>2))
_
Push!
_および_append!
_の使用に関する注意:Juliaのヘルプによると、_Push!
_は個々のアイテムをコレクションに追加するために使用され、_append!
_はアイテムのコレクションをコレクションに追加します。したがって、次のコードは同じ配列を作成します。
個別のアイテムをプッシュ:
_a = Vector{Float64}()
Push!(a, 1.0)
Push!(a, 2.0)
_
配列に含まれるアイテムを追加する:
_a = Vector{Float64}()
append!(a, [1.0, 2.0])
_
ジュリア1の新しい答え、追加!は非推奨です。要素を配列に追加するには、Push!(array、element)を使用する必要があります
my_stuff = zeros()
Push!(my_stuff, "new element")