how to create random double in specific range?

50 views (last 30 days)
HI, randi function Can only generate integers in specific range.
num = randi([1,3],[1,10],'double');
how to create double numbers in range such as [0.2,1.2]?

Accepted Answer

Cyrus
Cyrus on 5 Dec 2016
Edited: Image Analyst on 1 Apr 2023
For generating double numbers you can use:
r = rand( 1, 3 ,'double')
r = 1×3
0.8499 0.2298 0.4419
and to have them in a specific range you can use the following source: https://www.mathworks.com/help/matlab/math/floating-point-numbers-within-specific-range.html
which is:
a = 50;
b = 100;
r = (b-a).*rand(1000,1) + a;
thus, finally:
numElements = 10;
a = 0.2;
b = 1.2;
r= (b-a).*rand(1, numElements, 'double') + a; % [SL: added the missing "+a" term]
The result:
r
r = 1×10
0.3118 1.1751 0.8208 0.8696 0.6526 1.1281 0.4074 0.5364 0.2122 0.9621

More Answers (1)

Carolina Escobar
Carolina Escobar on 1 Apr 2023
e = rand(0.1,1)
  1 Comment
Steven Lord
Steven Lord on 1 Apr 2023
This will throw an error.
e = rand(0.1, 1)
Error using rand
Size inputs must be integers.
As the error message indicates, the size inputs to rand must contain integer values.

Sign in to comment.

Categories

Find more on Random Number Generation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!