# eigen(tranpose(mat))

**URL:** https://discourse.julialang.org/t/eigen-tranpose-mat/16317
**Category:** General Usage
**Tags:** array
**Created:** [October 14, 2018, 7:08pm UTC](https://discourse.julialang.org/t/eigen-tranpose-mat/16317 "2018-10-14T19:08:05Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![unhandyandy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/unhandyandy/32/7634_2.png) [@unhandyandy](https://discourse.julialang.org/u/unhandyandy)
#### Post date: [October 14, 2018, 7:08pm UTC](https://discourse.julialang.org/t/eigen-tranpose-mat/16317/1 "2018-10-14T19:08:05Z")

</div>

Shouldn’t this work?

```julia
julia> pmat = [0.3 0.5 0.2; 0.5 0.3 0.2; 0.5 0.4 0.1]
3×3 Array{Float64,2}:
 0.3 0.5 0.2
 0.5 0.3 0.2
 0.5 0.4 0.1

julia> eigen(transpose(pmat))
ERROR: MethodError: no method matching eigen(::Transpose{Float64,Array{Float64,2}})
Closest candidates are:
  eigen(::AbstractArray{TA,2}, ::AbstractArray{TB,2}) where {TA, TB} at /home/dabrowsa/lang/julia/julia/usr/share/julia/stdlib/v1.0/LinearAlgebra/src/eigen.jl:382
  eigen(::SymTridiagonal{T,V} where V<:AbstractArray{T,1}) where T at /home/dabrowsa/lang/julia/julia/usr/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:201
  eigen(::SymTridiagonal{T,V} where V<:AbstractArray{T,1}, ::UnitRange) where T at /home/dabrowsa/lang/julia/julia/usr/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:205
  ...
Stacktrace:
 [1] top-level scope at none:0

```

---

<div class="post-metadata">

### Author: ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)
#### Post date: [October 14, 2018, 7:12pm UTC](https://discourse.julialang.org/t/eigen-tranpose-mat/16317/2 "2018-10-14T19:12:10Z")

</div>

> [@unhandyandy](#):
>
> Shouldn’t this work?

Maybe. You can use

```julia
eigen(copy(transpose(pmat)))

```

to get the Julia v0.6 behaviour.

---

<div class="post-metadata">

### Author: ![unhandyandy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/unhandyandy/32/7634_2.png) [@unhandyandy](https://discourse.julialang.org/u/unhandyandy)
#### Post date: [October 14, 2018, 8:25pm UTC](https://discourse.julialang.org/t/eigen-tranpose-mat/16317/3 "2018-10-14T20:25:29Z")

</div>

Yup, that worked, thanks.

Is it normal to have to use `copy` to circumvent laziness?

---

<div class="post-metadata">

### Author: ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)
#### Post date: [October 14, 2018, 8:45pm UTC](https://discourse.julialang.org/t/eigen-tranpose-mat/16317/4 "2018-10-14T20:45:50Z")

</div>

> [@unhandyandy](#):
>
> Is it normal to have to use `copy` to circumvent laziness?

`copy` was chosen as the function to materialize the lazy `Transpose` and `Adjoint` wrappers, so yea, sometimes you have to use that since all methods (like `eigen` in this case) have not been implemented for those wrappers.

---

<div class="post-metadata">

### Author: ![unhandyandy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/unhandyandy/32/7634_2.png) [@unhandyandy](https://discourse.julialang.org/u/unhandyandy)
#### Post date: [October 14, 2018, 9:57pm UTC](https://discourse.julialang.org/t/eigen-tranpose-mat/16317/5 "2018-10-14T21:57:08Z")

</div>

OK, thanks.
