2013-04-05 4 views
0

en raison d'un projet, je dois utiliser des nombres pseudo-aléatoires avec une distribution normale.Nombre aléatoire - Choisissez la graine

A cet égard, je suis en train de généralement cette baisse:

nn_u = complex((normrnd(0,1.0,size(H_u))),(normrnd(0,1.0,size(H_u)))); 
nn_v = complex((normrnd(0,1.0,size(H_u))),(normrnd(0,1.0,size(H_u)))); 
nn_w = complex((normrnd(0,1.0,size(H_u))),(normrnd(0,1.0,size(H_u)))); 
size(H_u) = [4096,1]; 

De cette façon, je n'ai pas accès réel au nombre de graines. Ce que je m'attends à ce que, en utilisant la forme mentionnée ci-dessus, il y aura 6 graines, ce qui signifie une graine différente pour l'une des six fois appelée fonction normrnd. Ce que je voudrais faire en ce moment est de générer six représentations indépendantes, comme cela se produit ci-dessus, avec un seul point de départ, que je peux choisir parmi [1,999].

Pour atteindre ce que je pensais de procéder ainsi:

n = 4096; 
nn_tmp = normrnd(0,1,[n*6,1]); 
nn_u = complex(nn_tmp(1:n,1),nn_tmp(n+1:2*n,1)); 
nn_v = complex(nn_tmp(2*n+1:3*n,1),nn_tmp(3*n+1:4*n,1)); 
nn_w = complex(nn_tmp(4*n+1:5*n,1),nn_tmp(5*n+1:6*n,1)); 

Mais cette façon, je n'ai pas accès direct à la graine; Je ne sais même pas si le genre d'opération que je ferais a une forte validation théorique.

Tout soutien serait le bienvenu.

+2

Avez-vous vu http://stackoverflow.com/questions/4682080/ how-to-set-custom-seed-for-pseudo-random-nombre-générateur? – wakjah

+1

Une comparaison de 'RandStream' vs' rng' pour des raisons d'intérêt: http://blogs.mathworks.com/loren/2011/07/07/simpler-control-of-random-number-generation-in-matlab/ Je pense que les deux vont travailler pour vous – Dan

Répondre

2

Je pense que vous pouvez utiliser rng à graines, puis utiliser randn au lieu de normrnd pour votre problème

donc quelque chose comme

SEED = 120; %for example 
rng(SEED, 'twister'); 
nn_u = complex(randn(size(H_u)),randn(size(H_u))); 
nn_v = complex(randn(size(H_u)),randn(size(H_u))); 
nn_w = complex(randn(size(H_u)),randn(size(H_u))); 
Questions connexes