Random number between two decimal numbers

3 views (last 30 days)
Hi, how can a generate random number between two decimal numbers? For example i want to generate array 24x1 and for each row i have different interval, for the first row the interval is 0.124 to 0.908 and for second row 0.325 to 0.846. The generated values cant be above or below the interval.

Accepted Answer

Walter Roberson
Walter Roberson on 15 Apr 2022
intervalmins = [0.124, 0.325];
intervalmaxs = [0.908, 0.846];
output = rand(length(intervalmins), 1) .* (intervalmaxs(:) - intervalmins(:)) + intervalmins(:)
output = 2×1
0.9058 0.4439

More Answers (1)

Image Analyst
Image Analyst on 15 Apr 2022
Did you check the documentation. The second example is
Generate a 10-by-1 column vector of uniformly distributed numbers in the interval (-5,5).
r = -5 + (5+5)*rand(10,1)
  2 Comments
Evica Smilkoska
Evica Smilkoska on 16 Apr 2022
I have tried this version but after 10000 iterations the min and max of the decimal intervals are not kept, and i get values lower than the min value of the interval.
Image Analyst
Image Analyst on 16 Apr 2022
Strange, since it's essentially the same formula that you accepted in Walter's answer. You changed the numbers in the MATLAB example to what you wanted your range to be right? Either inside your loop or by setting up a vector with all the parameters in advance like Walter showed you.
I can't really say more since you never uploaded your code. But it sounds like you somehow got it working afterwards because you accepted an answer.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!