Cómo utilizar Randn en MATLAB para generar números aleatorios dentro de ciertos límites (En 6 Pasos)

MATLAB es un programa técnico que puede realizar aritmética, cálculo, cálculos, álgebra lineal, figura de trazado, procesamiento de señales y cientos de otras aplicaciones. Su versatilidad proviene de sus miles de funciones preprogramadas incorporadas. Una de esas funciones es "randn". Ordénale a la función el número de filas y columnas de datos que desees y crea una matriz de valores aleatorios donde los valores caen en una distribución "normal" o en "curva de campana" alrededor de una media. No puedes dar a "randn" los límites mínimo y máximo directamente, pero lo que puedes hacer en su lugar es estirar su salida en cualquier rango que necesites.
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.