【发布时间】:2014-05-30 14:36:41
【问题描述】:
我有一个大小为 n 的向量 vec 和一个充满 0 的矩阵 m IxI(矩阵)。我想用向量 vec 的前 I 个条目替换矩阵的第一列,然后用 vec 的条目 I+1 到 2I-1 替换矩阵 m 的第二列的前 I-1 个条目,然后矩阵 m 的第三列的前 I-3 个条目由 vec 的条目 2I 到 3I-2 组成,依此类推。在 R 中有没有一种快速的方法? 谢谢!
【问题讨论】:
我有一个大小为 n 的向量 vec 和一个充满 0 的矩阵 m IxI(矩阵)。我想用向量 vec 的前 I 个条目替换矩阵的第一列,然后用 vec 的条目 I+1 到 2I-1 替换矩阵 m 的第二列的前 I-1 个条目,然后矩阵 m 的第三列的前 I-3 个条目由 vec 的条目 2I 到 3I-2 组成,依此类推。在 R 中有没有一种快速的方法? 谢谢!
【问题讨论】:
也许将来我们可以有一个reproducible example?
这似乎与您上面的口头描述相符:
n <- 5
m <- matrix(0,n,n)
m[((n+1)-col(m))>=row(m)] <- 1:(n*(n+1)/2)
m
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 6 10 13 15
## [2,] 2 7 11 14 0
## [3,] 3 8 12 0 0
## [4,] 4 9 0 0 0
## [5,] 5 0 0 0 0
?lower.tri 也很有用,但我认为它没有指定您想要的组件。
【讨论】: