2012-07-24 6 views

答えて

21

を保持してマトリクスを生成するmu手段のベクトルであるとするとsigma変数は次のように入力します。

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

d偏差を求める。

+0

質問者がNが行の数であり、Mが列の数であることを理解している限り、彼はこの答えによってうまく対応するでしょう。 –

+0

@DWin、合意しました。どのような文脈でも行列を参照すると、それは従来の表記法です。 – Macro

+0

私は本当にわかりません。私は、Rの行列がbyrow = TRUEでない限り、 'matrix'への呼び出しで列の主要な順序で満たされているという事実に人々が時々驚いていることを知っています。私は、さまざまな言語にわたる行列規則にバリエーションがあると私に思い出させました。 –

2

は、標準的な開発者

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) 

のベクトルは列がIID正規確率のNMによって行列を作成するには、関連するサンプルを

+0

ありがとう、それは動作します。 @枢機卿の解決策ははるかに簡単です。 –

-2

注意:各エントリは独立しています。したがって、forループを使用することは避けられません。独立変数ごとにrnormを一度呼び出す必要があるからです。 rnorm(n * m)を呼び出すと、それは同じランダム変数からのn * mのサンプルです!

+0

これは間違っていて混乱します。 'rnorm(n * m)' *は、要求されたOPと全く同じように 'n * m' **独立**ランダムサンプルを生成します。 –

1

あなたが使用することができます。

replicate(NumbOfColumns,rnorm(NumbOfLines)) 

あなたは他の分布関数でrnormを置き換えることができ、たとえばrunifのために、他のディストリビューションとの行列を生成します。

関連する問題