# Question about A' and Transpose(A)

**URL:** https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317
**Category:** General Usage
**Created:** [May 19, 2022, 4:40pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317 "2022-05-19T16:40:52Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![Raymond](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raymond/32/36557_2.png) [@Raymond](https://discourse.julialang.org/u/Raymond)
#### Post date: [May 19, 2022, 4:40pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/1 "2022-05-19T16:40:52Z")

</div>

```julia
julia> A = [1 + 0.2im, 2 + 0.6im]
2-element Vector{ComplexF64}:
 1.0 + 0.2im
 2.0 + 0.6im

julia> A'
1×2 adjoint(::Vector{ComplexF64}) with eltype ComplexF64:
 1.0-0.2im 2.0-0.6im

julia> Transpose(A)
1×2 transpose(::Vector{ComplexF64}) with eltype ComplexF64:
 1.0+0.2im 2.0+0.6im

julia> A' == Transpose(A)
false

```

What’s wrong with this?Why A’ != Transpose(A)?

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [May 19, 2022, 4:45pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/2 "2022-05-19T16:45:26Z")

</div>

```julia
help?> '
search: ' ''

  A'
  adjoint(A)

  Lazy adjoint (conjugate transposition). Note that adjoint is applied recursively to elements.

```

---

<div class="post-metadata">

### Author: ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)
#### Post date: [May 19, 2022, 4:46pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/3 "2022-05-19T16:46:59Z")

</div>

`A'` indicates the adjoint of `A`, i.e. it gives you transposition + complex conjugation. For real matrices, you will notice that `A' == transpose(A)`.

---

<div class="post-metadata">

### Author: ![Raymond](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raymond/32/36557_2.png) [@Raymond](https://discourse.julialang.org/u/Raymond)
#### Post date: [May 19, 2022, 4:49pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/4 "2022-05-19T16:49:08Z")

</div>

@carstenbauer @jling Thank you very much for your kindly reply.This my first time to use Julia.

---

<div class="post-metadata">

### Author: ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)
#### Post date: [May 19, 2022, 4:54pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/5 "2022-05-19T16:54:35Z")

</div>

Let me welcome you to the community then!

---

<div class="post-metadata">

### Author: ![danielwe](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielwe/32/35657_2.png) [@danielwe](https://discourse.julialang.org/u/danielwe)
#### Post date: [May 19, 2022, 5:20pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/6 "2022-05-19T17:20:08Z")

</div>

Note that it’s usually preferable to use the function `transpose`, not the type constructor `Transpose`. The main reason is that `transpose` is aware that transposes undo themselves, so `transpose(transpose(A))` just returns `A`. In contrast, `Transpose` always piles on another layer of the `Transpose` wrapper type:

```julia
julia> Transpose(Transpose(A))
2×1 transpose(transpose(::Vector{ComplexF64})) with eltype ComplexF64:
 1.0 + 0.2im
 2.0 + 0.6im

julia> transpose(transpose(A))
2-element Vector{ComplexF64}:
 1.0 + 0.2im
 2.0 + 0.6im

julia> transpose(transpose(A)) === A
true

```

The same goes for `adjoint` vs. `Adjoint`.

---

<div class="post-metadata">

### Author: ![Raymond](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raymond/32/36557_2.png) [@Raymond](https://discourse.julialang.org/u/Raymond)
#### Post date: [May 19, 2022, 5:38pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/7 "2022-05-19T17:38:02Z")

</div>

> [@danielwe](#):
>
> Note that it’s usually preferable to use the function `transpose` , not the type constructor `Transpose` . The main reason is that `transpose` is aware that transposes undo themselves, so `transpose(transpose(A))` just returns `A` . In contrast, `Transpose` always piles on another layer of the `Transpose` wrapper type:

Thanks very much. I have another question. How can I transform the Matlab code into Julia.

This is the Matlab code. a is a vector and b is a number.

```julia
x(a <= 0 | b <= 0) = -1

```

I try to write the corresponding Julia code.

```julia
julia> x = ones(3,1)
3×1 Matrix{Float64}:
 1.0
 1.0
 1.0

julia> a = [1, -1, -0.02]
3-element Vector{Float64}:
  1.0
 -1.0
 -0.02

julia> b = 0.2
0.2

julia> if b <= 0 x .= -1 end

julia> x[a .<= 0] .= -1
2-element view(::Vector{Float64}, [2, 3]) with eltype Float64:
 -1.0
 -1.0

julia> x
3×1 Matrix{Float64}:
  1.0
 -1.0
 -1.0

```

But I don’t think my code is the simpliest. I think Julia should have better code to do this.Any suggestions about this?

---

<div class="post-metadata">

### Author: ![danielwe](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielwe/32/35657_2.png) [@danielwe](https://discourse.julialang.org/u/danielwe)
#### Post date: [May 19, 2022, 5:50pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/8 "2022-05-19T17:50:25Z")

</div>

Does this do what you want?

```julia
julia> x[(a .<= 0) .| (b .<= 0)] .= -1
2-element view(::Vector{Float64}, [2, 3]) with eltype Float64:
 -1.0
 -1.0

julia> x
3×1 Matrix{Float64}:
  1.0
 -1.0
 -1.0

```

---

<div class="post-metadata">

### Author: ![Raymond](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raymond/32/36557_2.png) [@Raymond](https://discourse.julialang.org/u/Raymond)
#### Post date: [May 19, 2022, 5:51pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/9 "2022-05-19T17:51:26Z")

</div>

Yes, this is what I want. Thanks a lot.

---

<div class="post-metadata">

### Author: ![Raymond](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raymond/32/36557_2.png) [@Raymond](https://discourse.julialang.org/u/Raymond)
#### Post date: [May 19, 2022, 5:57pm UTC](https://discourse.julialang.org/t/question-about-a-and-transpose-a/81317/10 "2022-05-19T17:57:41Z")

</div>

> [@danielwe](#):
>
> `x[(a .<= 0) .| (b .<= 0)] .= -1`

I also try to use `@.`

```julia
@. x[(a <= 0) | (b <= 0)] = -1

```
