|
1 | 1 | # Based on code from M. Bauman Stackexchange answer + Gitter discussion |
2 | | -mutable struct VectorOfArray{T, N, A} <: AbstractVectorOfArray{T, N} |
| 2 | +mutable struct VectorOfArray{T, N, A} <: AbstractVectorOfArray{T, N, A} |
3 | 3 | u::A # A <: AbstractVector{<: AbstractArray{T, N - 1}} |
4 | 4 | end |
5 | 5 | # VectorOfArray with an added series for time |
6 | | -mutable struct DiffEqArray{T, N, A, B} <: AbstractDiffEqArray{T, N} |
| 6 | +mutable struct DiffEqArray{T, N, A, B} <: AbstractDiffEqArray{T, N, A} |
7 | 7 | u::A # A <: AbstractVector{<: AbstractArray{T, N - 1}} |
8 | 8 | t::B |
9 | 9 | end |
10 | 10 |
|
| 11 | +Base.Array(VA::AbstractVectorOfArray{T,N,A}) where {T,N,A <: AbstractVector{<:AbstractVector}} = reduce(hcat,VA.u) |
| 12 | +function Base.Array(VA::AbstractVectorOfArray) |
| 13 | + vecs = vec.(VA.u) |
| 14 | + Array(reshape(reduce(hcat,vecs),size(VA.u[1])...,length(VA.u))) |
| 15 | +end |
| 16 | + |
11 | 17 | VectorOfArray(vec::AbstractVector{T}, dims::NTuple{N}) where {T, N} = VectorOfArray{eltype(T), N, typeof(vec)}(vec) |
12 | 18 | # Assume that the first element is representative all all other elements |
13 | 19 | VectorOfArray(vec::AbstractVector) = VectorOfArray(vec, (size(vec[1])..., length(vec))) |
|
0 commit comments