transpose
and adjoint
are linear algebra operations. If you want to treat your array as a container, use the container operations like reshape
, vec
or permutedims
.
As far as the why goes, the answer is that LinearAlgebra wants to support matrices of matrices and not all LinearAlgebra objects are themselves ::AbstractArray
s — so defaulting to a no-op is subtly error prone and defining a bunch of no-op transposes one-by-one is unsatisfactory. I’m not the biggest fan of this myself, but it is what it is.