Juliaにおける一般的な行列の転置
コード
julia> X = rand(0:9, 3, 3)
3×3 Matrix{Int64}:
9 4 5
4 8 9
8 7 4
julia> X'
3×3 adjoint(::Matrix{Int64}) with eltype Int64:
9 4 8
4 8 7
5 9 4
Juliaでは転置行列はtransposeまたはadjoint関数を使って求めることができ、さらには'演算子によって簡単に求めることもできる。
julia> Y = rand('0':'9', 3, 3)
3×3 Matrix{Char}:
'8' '3' '8'
'4' '0' '8'
'2' '3' '9'
julia> Y'
3×3 adjoint(::Matrix{Char}) with eltype Union{}:
ERROR: MethodError: no method matching adjoint(::Char)
しかし、行列が$\mathbb{R}^{m \times n}$または$\mathbb{C}^{m \times n}$に属する通常の行列ではなく一般的な二次元配列、すなわち他のデータ型に対する行列である場合、上のように行列の転置が定義されておらずエラーが発生する。このときは次のようにpermutedims関数を使って転置を求めることができる。
julia> permutedims(Y)
3×3 Matrix{Char}:
'8' '4' '2'
'3' '0' '3'
'8' '8' '9'
