2012-07-24 176 views

回答

21

要创建N通过M矩阵的独立同分布的正态随机变量类型为:

matrix(rnorm(N*M,mean=0,sd=1), N, M) 

调整平均值和标准值d偏差。

+0

只要提问者明白N是行数而M是列数,那么他会很好的回答这个问题 – 2012-07-24 23:26:18

+0

@DWin,同意了。虽然在任何情况下提及矩阵时都是常规表示法,对吗? – Macro 2012-07-24 23:26:59

+0

我不太确定。我知道人们有时会对R的矩阵按照列的主要顺序进行填充并调用矩阵来表示惊讶,除非byrow = TRUE。 Ihat让我觉得各种语言的矩阵惯例可能会有所不同。 – 2012-07-24 23:30:46

2

mu是手段的矢量和sigma标准开发者

mu<-1:10 
sigma<-10:1 
sample.size<-100 
norm.mat<-mapply(function(x,y){rnorm(x,y,n=sample.size)},x=mu,y=sigma) 

的向量会产生一矩阵的列保持相关样品

+0

谢谢,这是有效的。 @ cardinal的解决方案要简单得多。 – 2012-07-24 23:36:58

-2

注意:每个条目是独立的。所以你不能避免使用for循环,因为你必须为每个独立变量调用一次rnorm。如果你只是调用rnorm(n * m)这是来自同一随机变量的n * m个采样!

+0

这是错误的,而且令人困惑的是,''norm *(n * m)* *会产生'n * m' **独立的**随机采样,完全按照OP的要求。 – 2013-04-11 19:38:26

1

可以使用:

replicate(NumbOfColumns,rnorm(NumbOfLines)) 

可以与其它分布函数替换rnorm,例如runif,以产生具有其它分布矩阵。