2012-07-24 177 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,以產生具有其它分佈矩陣。