how to create random double in specific range?

50 visualizaciones (últimos 30 días)
fred bnm
fred bnm el 5 de Dic. de 2016
Editada: Image Analyst el 1 de Abr. de 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]?

Respuesta aceptada

Cyrus
Cyrus el 5 de Dic. de 2016
Editada: Image Analyst el 1 de Abr. de 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

Más respuestas (1)

Carolina Escobar
Carolina Escobar el 1 de Abr. de 2023
e = rand(0.1,1)
  1 comentario
Steven Lord
Steven Lord el 1 de Abr. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Random Number Generation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by