-
Notifications
You must be signed in to change notification settings - Fork 44
Closed
Description
MWE:
julia> v = StructArray{ComplexF64}(Tuple(eachcol(s)));
julia> s = rand(10, 2);
julia> v = StructArray{ComplexF64}(Tuple(eachcol(s)));
julia> copy(v)
ERROR: MethodError: Cannot `convert` an object of type Vector{Float64} to an object of type SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}
Closest candidates are:
convert(::Type{T}, ::LinearAlgebra.Factorization) where T<:AbstractArray at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/factorization.jl:58
convert(::Type{T}, ::T) where T<:AbstractArray at abstractarray.jl:14
convert(::Type{T}, ::T) where T at essentials.jl:205
...
Stacktrace:
[1] _totuple
@ ./tuple.jl:316 [inlined]
[2] Tuple{SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}, SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}}(itr::Base.Generator{NamedTuple{(:re, :im), Tuple{SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}, SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}}}, typeof(copy)})
@ Base ./tuple.jl:303
[3] NamedTuple{(:re, :im), Tuple{SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}, SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}}}(itr::Base.Generator{NamedTuple{(:re, :im), Tuple{SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}, SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}}}, typeof(copy)})
@ Base ./namedtuple.jl:104
[4] copy(s::StructVector{ComplexF64, NamedTuple{(:re, :im), Tuple{SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}, SubArray{Float64, 1, Matrix{Float64}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}}}, Int64})
@ StructArrays ~/.julia/dev/StructArrays/src/structarray.jl:401
[5] top-level scope
@ REPL[13]:1
OTOH, StructArrays.replace_storage(copy, v)
works.
Metadata
Metadata
Assignees
Labels
No labels