如何用R中的随机数填充矩阵?

时间:2012-02-14 18:32:40

标签: r matrix

expand.grid(i=rexp(5,rate=0.1))

它只创建一个col但是有一些方法可以轻松地将其乘以5个col?我的意思是matlab这样的事情,比如rand('exp', 0.1, 10,20)(创建一个矩阵,指数分布随机数,平均值为0.1×10x20),怎么样?

6 个答案:

答案 0 :(得分:32)

使用matrix功能:

matrix(rexp(200, rate=.1), ncol=20)

ETA:如果你想这样做而不重复200,你可以定义一个函数:

fill.matrix = function(expr, nrow=1, ncol=1) {
    matrix(eval(expr, envir=list(x=nrow*ncol)), nrow=nrow, ncol=ncol)
}

fill.matrix(rexp(x, rate=.1), nrow=10, ncol=20)

x因此成为您正在谈论的虚拟变量。这就是你要找的东西吗?

答案 1 :(得分:12)

你可以这样做:

matrix(rexp(200), 10)

当然使用你想要的任何发行版。

答案 2 :(得分:9)

?matrix会告诉你很多! rexp是生成随机指数分布的函数。

mat <- matrix(data = rexp(200, rate = 10), nrow = 10, ncol = 20)

答案 3 :(得分:0)

这是一个简单的解决方案:

replicate(rexp(10),20)

答案 4 :(得分:0)

使用此:

matris=matrix(rnorm(10),5,20)

答案 5 :(得分:0)

您可以在以下代码行中生成均匀分布的10 x 15随机矩阵:

matrix(runif(10*15), nrow = 10, ncol = 15)