Azzera filtri
Azzera filtri

how to create random double in specific range?

44 visualizzazioni (ultimi 30 giorni)
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]?

Risposta accettata

Cyrus
Cyrus il 5 Dic 2016
Modificato: Image Analyst il 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

Più risposte (1)

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

Accedi per commentare.

Categorie

Scopri di più su Random Number Generation in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by