To answer (parts of?) your question, a `Transpose`

d matrix can be converted to a regular `Matrix`

by calling the `Matrix`

constructor (or, alternatively, by using `copy`

)

```
julia> using LinearAlgebra
julia> a = reshape(rand(1:10, 9), (3,3))
3×3 Matrix{Int64}:
8 5 10
4 3 10
9 3 3
julia> at = transpose(a)
3×3 transpose(::Matrix{Int64}) with eltype Int64:
8 4 9
5 3 3
10 10 3
julia> b = Matrix(at)
3×3 Matrix{Int64}:
8 4 9
5 3 3
10 10 3
julia> b = copy(at)
3×3 Matrix{Int64}:
8 4 9
5 3 3
10 10 3
```

Assuming that your matrix doesn’t contain any `missing`

s, to get rid of the `Union{Missing, Float64}`

you can call `Matrix{Float64}(at)`

instead of `Matrix(at)`

```
julia> amissing = transpose(convert(Matrix{Union{Missing, Int64}}, a))
3×3 transpose(::Matrix{Union{Missing, Int64}}) with eltype Union{Missing, Int64}:
8 4 9
5 3 3
10 10 3
julia> Matrix{Float64}(amissing)
3×3 Matrix{Float64}:
8.0 4.0 9.0
5.0 3.0 3.0
10.0 10.0 3.0
```

Final note, just in case you aren’t familiar, `Matrix{Float64}`

is just an alias for `Array{Float64, 2}`

, i.e. it is the same thing.

```
julia> Matrix{Float64}
Matrix{Float64} (alias for Array{Float64, 2})
```