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?
```

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'
2Ă—2 adjoint(::Matrix{ComplexF64}) with eltype ComplexF64:
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

This is obviously some terminological clash. See Adjoint matrix (also conjugate tranpose or Hermitian adjoint) vs Adjugate matrix(also classical adjoint or adjunct).

2 Likes

I think this should be pointed out more forcefully. For most people, the distinction between adjoint and transpose is moot.

Is this also true for those who use complex matrices?

Thatâ€™s exactly the point! What fraction of people using Julia actually deal with complex numbers? Likely smaller than what youâ€™d think. Iâ€™m not advocating that we change anything â€“ certainly we want the definitions to be correct and precise. But we should also be clear that the distinction is only important for a small fraction of users. And that because Julia rocks it should all Just Work regardless.

3 Likes