# Adjoint or transpose of Char or Vector{Char}

**URL:** <https://discourse.julialang.org/t/adjoint-or-transpose-of-char-or-vector-char/137412>\
**Category:** General Usage\
**Tags:** question, adjoint, char\
**Created:** [June 2, 2026, 8:43pm UTC](https://discourse.julialang.org/t/adjoint-or-transpose-of-char-or-vector-char/137412 "2026-06-02T20:43:17Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jecs](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jecs/32/1781_2.png) [@jecs](https://discourse.julialang.org/u/jecs)\
**Post date:** [June 2, 2026, 8:43pm UTC](https://discourse.julialang.org/t/adjoint-or-transpose-of-char-or-vector-char/137412/1 "2026-06-02T20:43:18Z")

</div>

Scalar case:

```julia-repl
julia> 1'
1

julia> 'a''
ERROR: MethodError: no method matching adjoint(::Char)
The function `adjoint` exists, but no method is defined for this combination of argument types.
  ...

```

Vector case:

```julia-repl
julia> [1;2;3]'
1×3 adjoint(::Vector{Int64}) with eltype Int64:
 1 2 3

julia> ['x';'y';'z']'
1×3 adjoint(::Vector{Char}) with eltype Union{}:
Error showing value of type LinearAlgebra.Adjoint{Union{}, Vector{Char}}:
  ...

```

There has been some discussion about the adjoint of a `String` and `Vector{String}`. The rationale for not extending adjoint to `String`s make sense. However, `Char`s can behave like integers, can be converted to integers with `codepoint`, have a notion of distance, can be added to and subtracted from, etc. I’m curious why `Char`s are also prohibited from having adjoints.

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [June 2, 2026, 9:34pm UTC](https://discourse.julialang.org/t/adjoint-or-transpose-of-char-or-vector-char/137412/2 "2026-06-02T21:34:28Z")

</div>

`Char` doesn’t have an inner product (`dot` in Julia). `y = adjoint(x)` maps x to the [dual space](https://en.wikipedia.org/wiki/Dual_space) (ala [Riesz](https://en.wikipedia.org/wiki/Riesz_representation_theorem)): it gives the linear form y such that the inner product \langle x, z \rangle is equal to y z.

If you want to flip an “column vector” of `Char` to a “row vector”, use `permutedims`:

```julia-auto
julia> permutedims(['x';'y';'z'])
1×3 Matrix{Char}:
 'x' 'y' 'z'

```
