茱莉亚主要对角线下的总和

时间:2019-10-24 08:03:00

标签: julia

如何在julia中不使用矩阵中的主对角线求和在主对角线下求和?

我正在使用sum=tril(a)-1,但在julia中不起作用。

我知道我需要口罩,但我不知道如何使用它。

2 个答案:

答案 0 :(得分:6)

您正在寻找LinearAlgebra module,它是标准库的一部分,并包含一个tril函数:

julia> using LinearAlgebra

julia> A = ones(5, 5)
5×5 Array{Float64,2}:
 1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0  1.0

julia> tril(A, -1)
5×5 Array{Float64,2}:
 0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0
 1.0  1.0  0.0  0.0  0.0
 1.0  1.0  1.0  0.0  0.0
 1.0  1.0  1.0  1.0  0.0

julia> sum(tril(A, -1))
10.0

答案 1 :(得分:5)

tril函数在Linear Algebra标准库中。要使用它,您需要导入LinearAlgebra模块。 tril使用第二个可选参数来指定您要在哪里开始下部三角形部分。您可以将其设置为-1以便不采用主对角线。

using LinearAlgebra

A = rand(5, 5)
lowerA = tril(A, -1)
println(sum(lowerA)) 

您可能还想看看惰性下三角视图构造函数,例如LowerTriangularOneUnitLowerTriangular