 Why does Julia denotes a matrix/array transpose as adjoint?

``````A = [1 2 3 ; 4 5 6] # an array of 2*3
A' # In REPL, it shows as adjoint. Is it correct? Shouldn't it be called TRANSPOSE?
`````` because it is not a transpose, it is an adjoint:

``````julia> a = rand(ComplexF64, 2,2)
2×2 Matrix{ComplexF64}:
0.950914+0.0447945im  0.526487+0.223671im
0.851739+0.626451im   0.559013+0.522106im

julia> transpose(a)
2×2 transpose(::Matrix{ComplexF64}) with eltype ComplexF64:
0.950914+0.0447945im  0.851739+0.626451im
0.526487+0.223671im   0.559013+0.522106im

julia> a'
0.950914-0.0447945im  0.851739-0.626451im
0.526487-0.223671im   0.559013-0.522106im
``````
4 Likes

Adjugate matrix - Wikipedia Specifically: " today the “adjoint” of a matrix normally refers to its corresponding adjoint operator, which is its conjugate transpose."

4 Likes

I’m guessing you are coming form Matlab where `A’` means `transpose(A)`. Alas, Julia is not Matlab and is not trying to be Matlab.

Uh? In Matlab `A'` does transpose conjugate. `transpose(A)` or `A.'` does transpose.

7 Likes

Huh. My memory has failed me here! It’s been a while since I last used Matlab I guess. Thank you for the correction.

1 Like

`A.’` also used to be transpose in Julia, but was changed on account that it was conflicting with broadcast

4 Likes

@Mason you are right…I do come from MATLAB background.
Nevertheless, in Matrix algebra when I studied it, adjoint calculation was fairly complex with calculation of cofactors, while A’ used to be transpose of matrix, which is obtained by transpose(A) in Julia, and by A’ for real numbers. Am I right?
From matrix algebra point-of-view, adjoint of non-square matrix is not defined, hence the confusion.

https://mathworld.wolfram.com/ConjugateTranspose.html

The conjugate transpose is also known as the adjoint matrix

if you adopt this definition, then you can certainly define adjoint for non-square matrix in a consistent way. Of course, it only has those properties you mentioned when the matrix is square, but that’s fine.

Ah yes. This is a different sense of the word adjoint. It’s slightly overloaded terminology unfortunately. In Julia, `Adjoint` refers to the Hermitian adjoint.

2 Likes

If you just have a matrix with real numbers , and you need a transpose, then you can also use A’ (post scriptum for those not familiar with complex numbers)

1 Like

Is this also true for those who use complex matrices? 