20 value from a normal distribution..
    9 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
Hi,
I have mu and sigma (stand deviation) i.e. mean=20 and sigma=4. I am generating data with normal distribution from these parameters.
I need to select 20 values ranges between 8 to 32 from this distribution..How to do so?
Thanks in advance
Mu = 20; 
sigma = 4;
N = normrnd(Mu, sigma, 100000, 1);
N=round(N);
hist(N,0:1:60);
0 commentaires
Réponse acceptée
  Michael Haderlein
      
 le 7 Mai 2015
        
      Modifié(e) : Michael Haderlein
      
 le 7 Mai 2015
  
      First, make sure that there are enough numbers available (with the values you use, this might not be a problem):
lo=8;hi=32;num=20;
while sum(N>=lo & N<=hi)<num
    N(N<lo | N>hi)=round(normrnd(Mu,sigma,sum(N<lo | N>hi),1));   
end
Then, take the first 20 values which are in the respective interval:
ind=find(N>=lo & N<hi,num,'first');
N(ind)
5 commentaires
  Michael Haderlein
      
 le 7 Mai 2015
				Looks good. You don't need to round again when you create q. Also, instead of num/2, you can use p1 again. When finding the indices, you have N<hi instead of N<=hi. The rest should be fine.
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Random Number Generation dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

