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

조회 수: 1 (최근 30일)
Alexandra
Alexandra 2016년 11월 25일
댓글: Alexandra 2016년 11월 28일
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
Alexandra
Alexandra 2016년 11월 25일
Thanks a lot for the help. I will use tic toc to check which way is faster as the model is very heavy.

댓글을 달려면 로그인하십시오.

채택된 답변

Guillaume
Guillaume 2016년 11월 25일
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

추가 답변 (2개)

Image Analyst
Image Analyst 2016년 11월 25일
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
Alexandra
Alexandra 2016년 11월 28일
This solution is close to uniform but never takes value zero (a), which is important.

댓글을 달려면 로그인하십시오.


dpb
dpb 2016년 11월 25일
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
Alexandra
Alexandra 2016년 11월 28일
Hi, sorry, with b=0,045 the max number generated was 0,04.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by