uniform distribution between a and b with intervals of 0,005

3 vues (au cours des 30 derniers jours)
Alexandra
Alexandra le 25 Nov 2016
Commenté : Alexandra le 28 Nov 2016
Hi,
I am having trouble using R = unidrnd(N) to create n random numbers between a and b (imagine a=0 and b=0.2) where the numbers generated are always a multiple of 0,005. For example: 0,005 0,1 0,15 0,0155 ...
Thanks a lot,
  1 commentaire
Alexandra
Alexandra le 25 Nov 2016
Thanks a lot for the help. I will use tic toc to check which way is faster as the model is very heavy.

Connectez-vous pour commenter.

Réponse acceptée

Guillaume
Guillaume le 25 Nov 2016
How about generating uniform integers between 0 and 0.2/0.005 and multiplying the whole lot by 0.005
R = randi([0 0.2/0.005], 1, 1000) * 0.005; %generate 1000 numbers in multiple of 0.005 between 0 and 0.2

Plus de réponses (2)

Image Analyst
Image Analyst le 25 Nov 2016
Alexandra, try this:
numValues = 20; % However many elements you want.
a=0.1;
b = 0.2;
% Get max integer value for randi.
topValue = floor((b-a)/0.005)
% Scale to make values go from a to b.
R = a + 0.005 * randi(topValue, 1, numValues)
  1 commentaire
Alexandra
Alexandra le 28 Nov 2016
This solution is close to uniform but never takes value zero (a), which is important.

Connectez-vous pour commenter.


dpb
dpb le 25 Nov 2016
Well, I'd guess so...that wouldn't be very random at all...but, the simple-minded approximation would be
>> N=10;
>> n=rand(N,1)*0.2;
>> n=(n*1000-mod(n*1000,5))/1000
n =
0.0950
0.1600
0.0250
0.0800
0.1800
0.1550
0.1900
0.1300
0.0050
0.1650
>>
  1 commentaire
Alexandra
Alexandra le 28 Nov 2016
Hi, sorry, with b=0,045 the max number generated was 0,04.

Connectez-vous pour commenter.

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!

Translated by