我正在尝试用预填充向量 V 填充矩阵 M 的下对角线
我的原始矩阵看起来像这样:
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]
最好的方法是什么?