how to create random double in specific range?

50 Ansichten (letzte 30 Tage)
fred bnm
fred bnm am 5 Dez. 2016
Bearbeitet: Image Analyst am 1 Apr. 2023
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]?

Akzeptierte Antwort

Cyrus
Cyrus am 5 Dez. 2016
Bearbeitet: Image Analyst am 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

Weitere Antworten (1)

Carolina Escobar
Carolina Escobar am 1 Apr. 2023
e = rand(0.1,1)
  1 Kommentar
Steven Lord
Steven Lord am 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Random Number Generation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by