Does anyone know if it is possible to not include the diagonal when using the LowerTriangular() function or if there is a function that can exclude the diagonal from the output? LowerTriangular() would work perfectly for what I am doing if the diagonal was not included.

No, but there is `LinAlg.UnitLowerTriangular`

which masks the diagonal with 1.

Or you can define your own type?

2 Likes

You could use a view of a triangular matrix

```
view(L,:,2:end)
```

No, unfortunately `@view L[:, 2:end]`

will just drop the first column. The closest thing here is probably the `tril`

and `tril!`

functions, which allow a second argument to specify the diagonal from which the given matrix should be masked.

Also, is this related? Perhaps the same question?

3 Likes

Just a concrete example to emphasize @mbauman’s idea:

```
julia> using LinearAlgebra
julia> a = rand(1:5,5,5)
5×5 Array{Int64,2}:
2 5 2 4 1
2 1 3 2 3
1 4 4 3 1
3 3 1 2 2
3 2 3 5 3
julia> b = tril(a,-1)
5×5 Array{Int64,2}:
0 0 0 0 0
2 0 0 0 0
1 4 0 0 0
3 3 1 0 0
3 2 3 5 0
```

So, as you see, you just need to feed that optional `-1`

to the `tril`

function to express your desire for dropping the main diagonal.

2 Likes

Thank you for the example!