给出一个向量t。如何填写像
这样的矩阵t[1] t[1] t[1] ... t[1]
t[1] t[2] t[2] ... t[2]
t[1] t[2] t[3] ... t[3]
... ... ... ... ...
t[1] t[2] t[3] ... t[n]
对应于时间t的布朗运动的协方差矩阵
答案 0 :(得分:4)
这是一种方式。
t <- 11:15
m <- vapply(seq_along(t), function(i) c(t[seq_len(i)], rep(t[i], length(t)-i)), numeric(length(t)))
m
# [,1] [,2] [,3] [,4] [,5]
#[1,] 11 11 11 11 11
#[2,] 11 12 12 12 12
#[3,] 11 12 13 13 13
#[4,] 11 12 13 14 14
#[5,] 11 12 13 14 15
您也可以使用sapply
- 更短但速度更慢(您没有指定函数返回的内容):
m <- sapply(seq_along(t), function(i) c(t[seq_len(i)], rep(t[i], length(t)-i)))
答案 1 :(得分:4)
(i,j)系数的值是min(i,j):
m <- matrix( NA, nr=5, nc=5 ) # Empty matrix with the right size
m <- pmin( col(m), row(m) )