help random numbers generator

Hi everyone, I'd like to know how to generate a set of random numbers with normal distribution (randn) belonging to a range defined by me.
To make it easier:
I want to generate 10 random numbers between [-0.5 0.5] using randn.
Thanks for your attention

 Accepted Answer

Good. Here it is as an 'official' answer:
pd = makedist('Normal');
t = truncate(pd,-0.5,0.5);
r = random(t,10,1);

More Answers (1)

a = -0.5 ;
b = 0.5 ;
N = 10 ;
r = (b-a).*randn(N,1) + a;

7 Comments

ummm...that isn't right for normal random numbers, only uniform(0,1). The code given will generate numbers from about -4 to 3 with a mean of -0.5, which is not what the OP was asking for.
Could please help me ? I noticed it was wrong when i tried to run it on my project
I am not sure exactly what you want to do. One possibility is to just keep generating random numbers with randn until you find 10 in the range you want. Would that work for you?
It would work. Are you sure that there are no possibilities to generate numbers between a specified range?
If that would work, then I guess this is what you are after:
pd = makedist('Normal');
t = truncate(pd,-0.5,0.5);
r = random(t,10,1);
it works perfectly! thanks

Sign in to comment.

Categories

Find more on Random Number Generation in Help Center and File Exchange

Asked:

on 23 May 2020

Answered:

on 25 May 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!