Main Content

Random Numbers Within a Specific Range

This example shows how to create an array of random floating-point numbers that are drawn from a uniform distribution in the open interval (50, 100).

By default, rand returns normalized values (between 0 and 1) that are drawn from a uniform distribution. To change the range of the distribution to a new range, (a,b), multiply each value by the width of the new range, (b-a), and then shift every value by a.

First, initialize the random number generator to make the results in this example repeatable.

rng(0,'twister');

Create a vector of 1000 random values. Use the rand function to draw the values from a uniform distribution in the open interval, (50,100).

a = 50;
b = 100;
r = (b-a).*rand(1000,1) + a;

Verify the values in r are within the specified range.

r_range = [min(r) max(r)]
r_range = 1×2

   50.0261   99.9746

The result is in the open interval, (50,100).

Note that some combinations of a and b make it theoretically possible for your results to include a or b. In practice, this is extremely unlikely to happen.

See Also

Related Topics