Я пытаюсь заполнить нижнюю диагональ моей матрицы М с укажи вектором VR реверс нижний треугольник матрицы петли
Моя исходная матрица выглядит примерно так:
M = matrix(c(.3,.2,.1,0), nrow=4, ncol=5)
M 1 2 3 4 5
1 .3 .3 .3 .3 .3
2 .2 .2 .2 .2 .3
3 .1 .1 .1 .1 .1
4 0 0 0 0 0
У меня есть вектор похож на это:
V
.4
.3
.25
.1
Теперь я хочу, чтобы заполнить нижний треугольник с этим вектором, чтобы получить:
0 1 2 3 4 5
1 .3 .3 .3 .3 .1
2 .2 .2 .2 .25 .25
3 .1 .1 .3 .3 .3
4 0 .4 .4 .4 .4
Если я использую функцию lower.tri
он выдает ошибку, так что я построил цикл, который только должен заполнить столбцы из днище вверх:
o <- 5
c <- 2
s <- 1
for(s in (1:o)){
for(c in (2:o)){
M[((o-s):o),c] <- V[1:c]}}
Моя идея была двигаться вверх, как я вручную писал:
M[(5-1):5,2] <- V[1:2]
M[(5-2):5,3] <- V[1:3]
Каков наилучший способ?