how to create random double in specific range?

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

0 votos

e = rand(0.1,1)

1 comentario

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 Centro de ayuda y File Exchange.

Preguntada:

el 5 de Dic. de 2016

Editada:

el 1 de Abr. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by