朱莉娅:追加到一个空向量
Julia: append to an empty vector
我想创建一个空向量并在 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) )
您可以通过在 [] 前面键入类型来初始化任何类型的空 Vector。喜欢:
Float64[] # Returns what you want
Array{Float64, 2}[] # Vector of Array{Float64,2}
Any[] # Can contain anything
Julia 1 的新答案。追加!已弃用,您现在需要使用 push!(array, element) 将元素添加到数组
my_stuff = zeros()
push!(my_stuff, "new element")
我对 Julia 有点陌生,在遇到类似错误后遇到了这个问题。要回答 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])
我想创建一个空向量并在 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) )
您可以通过在 [] 前面键入类型来初始化任何类型的空 Vector。喜欢:
Float64[] # Returns what you want
Array{Float64, 2}[] # Vector of Array{Float64,2}
Any[] # Can contain anything
Julia 1 的新答案。追加!已弃用,您现在需要使用 push!(array, element) 将元素添加到数组
my_stuff = zeros()
push!(my_stuff, "new element")
我对 Julia 有点陌生,在遇到类似错误后遇到了这个问题。要回答 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])