将SVector推入Julia中SVector的向量

时间:2018-10-20 17:29:44

标签: julia

我想将SVector(由JuliaArrays/StaticArrays.jl提供)推入SVector的向量中。以下代码是我的试用版:

using StaticArrays
lst = Vector{SVector{2, Float64}}[]
a = SVector(1, 2)
push!(lst, a)

但这会导致以下错误:

ERROR: LoadError: MethodError: Cannot `convert` an object of type Int64 to an object of type SArray{Tuple{2},Float64,1,2}

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您犯的错误是您在Array的{​​{1}}中创建了ArraySVector创建一个类型为T[]的空数组。

T

因此,您需要将数组重新定义为# This creates an empty array of type Float64 julia> lst = Float64[] 0-element Array{Float64,1} # This creates an empty array of a Float64 array julia> lst = Vector{Float64}[] 0-element Array{Array{Float64,1},1} 的数组。

SVector

您也可以使用此方法代替空数组定义的方法:

julia> lst = SVector{2, Float64}[] # an empty 1D array(i.e. Vector) of `SVector`
0-element Array{SArray{Tuple{2},Float64,1,2},1}

julia> a = SVector(1, 2)
2-element SArray{Tuple{2},Int64,1,2}:
 1
 2

julia> push!(lst, a)
1-element Array{SArray{Tuple{2},Float64,1,2},1}:
 [1.0, 2.0]
相关问题