I’ve been using OffsetArrays and is a bit frustrated with its cumbersome creation:
# xax[0:imax], zax[0:kmax] are OffsetArrays.
# I want to create an OffsetArray [0:imax, 0:kmax]
oa = OffsetArray(Array{Float64,2}(undef, length(xax), length(zax)), axes(xax,1), axes(zax,1))
# calculate values and assign them to oa . . .
Is there a standard, easy solution?
If the eltype
of the new array is the same as those of xax
and zax
and the new array is always 2D, then I could use a hack like
oa = xax * zax'
But, for other cases, it’s getting more and more cumbersome:
oa = Float64.(xax * reshape(yax, 1, axes(yax)) * reshape(zax, 1, 1, axes(zax)))
I do this a lot and so I wish I would be able to do something like
oa = OffsetArray{Float64,2}(undef, axes(xax,1), axes(zax,1))
# calculate values and assign them to oa . . .
It’s entirely possible (from my past experience with Julia) that I haven’t read the right documentation. If so, I apologize. I’m trying but I have found only this:
https://juliaarrays.github.io/OffsetArrays.jl/stable/
which seems to me to suggest that OffsetArray is always a wrapper to an existing “real” array.