首页 > 解决方案 > 创建许多随机数矩阵的问题

问题描述

我想制作一个 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 矩阵。我怎样才能解决这个问题?

标签: r

解决方案


使用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

推荐阅读