Cómo utilizar Randn en MATLAB para generar números aleatorios dentro de ciertos límites

MATLAB es un programa técnico.
Por joe friedman

Paso 1

Haz una matriz de valores aleatorios, normalmente distribuidos mediante la función randn. Por ejemplo, escribe en la línea de comandos de MATLAB:

A = randn(4, 5)

Presiona Enter. MATLAB crea una matriz "A" con cuatro filas y cinco columnas. Los 20 valores de la matriz se distribuirán normalmente alrededor de una media central.


Paso 2

Calcula la diferencia entre el número máximo en "A" y el número mínimo en "A" con el siguiente código:

FDiff = max(A) – min(A)

MATLAB almacena el rango de la función randn en "FDiff". Por ejemplo, si el número mínimo era de -0,1 y el máximo era de 1,9, entonces MATLAB daría a "FDiff" el valor de dos.


Paso 3

Calcula la diferencia entre los números máximos y mínimos sobre los que deseas que los números aleatorios se estiren. Por ejemplo, escribe este código y pulsa Enter:

RDiff = 30 - 10

MATLAB almacenará tu rango deseado en "RDiff." En este ejemplo, el número máximo en el rango que quieres es de 30 y el mínimo es de 10. MATLAB almacena el valor 20 en "RDiff".


Paso 4

Calcula la escala que necesitas para estirar los valores de la matriz "A" para ajustarlos en su rango. Escribe en la línea y pulsa Enter:

scale = RDiff/FDiff

Con los números anteriores de ejemplo, MATLAB divide 20 en dos y da “scale” ("escala") al valor 10.


Paso 5

Escala los valores de la matriz "A" para que se estiren tan amplio o tan estrecho como tu rango deseado con el siguiente código:

A2 = scale*A


Paso 6

Mueve la matriz "A2" hacia arriba o hacia abajo de la línea numérica hasta que su valor mínimo coincida con su valor mínimo, por ejemplo 10, con este código:

A3 = A2 + (10 – min(A2))

Este resultado final, "A3", es una matriz de números distribuidos normalmente dentro de lo que el rango establece. En este ejemplo, los números aleatorios se extienden desde 10 hasta 30.