Это все еще не на 100% ясно из вашего обсуждения в комментариях выше, что вы ищете, но вот попытка ответить:
julia> using LinearAlgebra
julia> A = [1 2 3; 4 5 6; 7 8 9]
3×3 Array{Int64,2}:
1 2 3
4 5 6
7 8 9
Я пойду на основе вашего первого комментария, указываявы хотите, чтобы "tril
матрицы стала triu
матрицы и изменила значения tril
".
Как предполагает Стефан в своем комментарии, перемещение нижних треугольных значений матрицы в верхниеТреугольная форма может быть достигнута простым транспонированием матрицы:
julia> tril(A)
3×3 Array{Int64,2}:
1 0 0
4 5 0
7 8 9
julia> triu(A)
3×3 Array{Int64,2}:
1 2 3
0 5 6
0 0 9
julia> A_tr = A'
3×3 Adjoint{Int64,Array{Int64,2}}:
1 4 7
2 5 8
3 6 9
Как видите, A_tr
имеет значения, возвращаемые tril(A)
в ее верхней треугольнике. Затем вы можете использовать предложение @ crstnbr, чтобы заменить все нижние треугольные значения на -3 (добавив минус, чтобы сделать результат визуально более четким):
julia> for k in 1:size(A_tr, 1) A_tr[diagind(A_tr, k)] .= -3 end
julia> A_tr
3×3 Adjoint{Int64,Array{Int64,2}}:
1 -3 -3
2 5 -3
3 6 9