Как изменить значения в нижней треугольнике матрицы в юли и преобразовать в верхнюю треугольную? - PullRequest
0 голосов
/ 29 октября 2019

Как изменить значения в нижней треугольнике матрицы в джулии и преобразовать в верхнюю треугольную? Мне нужна помощь с домашним заданием

1 Ответ

0 голосов
/ 06 ноября 2019

Это все еще не на 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
...