Effacer les filtres
Effacer les filtres

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

2 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.

Community Treasure Hunt

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

Start Hunting!

Translated by