如何在julia
中不使用矩阵中的主对角线求和在主对角线下求和?
我正在使用sum=tril(a)-1
,但在julia
中不起作用。
我知道我需要口罩,但我不知道如何使用它。
答案 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))
您可能还想看看惰性下三角视图构造函数,例如LowerTriangular
或OneUnitLowerTriangular
。