我想制作一个3x3矩阵,其数字由间隔[0,1]上的均匀分布得出。我想做1000次。
我目前正在这样做:
D <- replicate(3, runif(3, 0, 1), simplify=TRUE)
#This makes a 3x3 matrix with random numbers from
#uniform normal distribution on interval [0,1]
rep(D,times=1000)
,但是该命令将创建一个包含9000个数字的列表,而不是1000个3x3矩阵。我该如何解决?
答案 0 :(得分:2)
使用lapply
,我们可以创建一个长度为1000的列表,其中列表中的每个元素都是所需的3x3矩阵:
set.seed(1234)
list_of_mats <- lapply(1:1000, function(x) matrix(runif(9), 3, 3))
例如,第八矩阵是:
list_of_mats[[8]]
# [,1] [,2] [,3]
#[1,] 0.01374994 0.30809476 0.5645698
#[2,] 0.23902573 0.50854757 0.1214802
#[3,] 0.70649462 0.05164662 0.8928364