# Quick way to reinterpret this?

**URL:** <https://discourse.julialang.org/t/quick-way-to-reinterpret-this/112432>\
**Category:** General Usage\
**Created:** [April 2, 2024, 5:31pm UTC](https://discourse.julialang.org/t/quick-way-to-reinterpret-this/112432 "2024-04-02T17:31:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ahmed\_Salih](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ahmed_salih/32/206579_2.png) [@Ahmed\_Salih](https://discourse.julialang.org/u/Ahmed_Salih)\
**Post date:** [April 2, 2024, 5:31pm UTC](https://discourse.julialang.org/t/quick-way-to-reinterpret-this/112432/1 "2024-04-02T17:31:08Z")

</div>

Hello!

When reading from a .h5 file, where I have saved some position value as `SVector{3,Float64}` I get this:

```julia
julia> data["Position"]
3027-element Vector{@NamedTuple{data::@NamedTuple{1::Float64, 2::Float64, 3::Float64}}}:
 (data = (var"1" = -0.04, var"2" = -0.04, var"3" = 0.0),)
 (data = (var"1" = -0.04, var"2" = -0.02, var"3" = 0.0),)
 (data = (var"1" = -0.02, var"2" = -0.04, var"3" = 0.0),)
 (data = (var"1" = -0.02, var"2" = -0.02, var"3" = 0.0),)

```

Is there a quick and efficient way to reinterpret this back to a SVector{3,Float64} or 3xN matrix?

Kind regards

---

<div class="post-metadata">

**Author:** ![ffevotte](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ffevotte/32/6587_2.png) [@ffevotte](https://discourse.julialang.org/u/ffevotte)\
**Post date:** [April 2, 2024, 5:55pm UTC](https://discourse.julialang.org/t/quick-way-to-reinterpret-this/112432/2 "2024-04-02T17:55:39Z")

</div>

At the risk of asking the obvious: is [`reinterpret`](https://docs.julialang.org/en/v1/base/arrays/#Base.reinterpret) what you’re looking for?

Array of deserialized data:

```julia-repl
julia> d = [(data = (var"1" = -0.04, var"2" = -0.04, var"3" = 0.0),)
            (data = (var"1" = -0.04, var"2" = -0.02, var"3" = 0.0),)
            (data = (var"1" = -0.02, var"2" = -0.04, var"3" = 0.0),)
            (data = (var"1" = -0.02, var"2" = -0.02, var"3" = 0.0),)]
4-element Vector{@NamedTuple{data::@NamedTuple{1::Float64, 2::Float64, 3::Float64}}}:
 (data = (var"1" = -0.04, var"2" = -0.04, var"3" = 0.0),)
 (data = (var"1" = -0.04, var"2" = -0.02, var"3" = 0.0),)
 (data = (var"1" = -0.02, var"2" = -0.04, var"3" = 0.0),)
 (data = (var"1" = -0.02, var"2" = -0.02, var"3" = 0.0),)

```

Reinterpreted as an array of `SVector{3, Float64}`:

```julia-repl
julia> using StaticArrays
julia> reinterpret(SVector{3, Float64}, d)
4-element reinterpret(SVector{3, Float64}, ::Vector{@NamedTuple{data::@NamedTuple{1::Float64, 2::Float64, 3::Float64}}}):
 [-0.04, -0.04, 0.0]
 [-0.04, -0.02, 0.0]
 [-0.02, -0.04, 0.0]
 [-0.02, -0.02, 0.0]

```

Reinterpreted as a 3xN array of `Float64`:

```julia-repl
julia> reinterpret(reshape, Float64, d)
3×4 reinterpret(reshape, Float64, ::Vector{@NamedTuple{data::@NamedTuple{1::Float64, 2::Float64, 3::Float64}}}) with eltype Float64:
 -0.04 -0.04 -0.02 -0.02
 -0.04 -0.02 -0.04 -0.02
  0.0 0.0 0.0 0.0

```

---

<div class="post-metadata">

**Author:** ![Ahmed\_Salih](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ahmed_salih/32/206579_2.png) [@Ahmed\_Salih](https://discourse.julialang.org/u/Ahmed_Salih)\
**Post date:** [April 2, 2024, 5:56pm UTC](https://discourse.julialang.org/t/quick-way-to-reinterpret-this/112432/3 "2024-04-02T17:56:36Z")

</div>

That is perfect. It was `reshape` I was missing, thanks!
