Generación de matrices aleatorias en Matlab
En esta clase, les mostraré cómo generar una matriz con valores aleatorios en Matlab, utilizando la funcionalidad de la función rand().
rand(filas, columnas)
La función rand() se caracteriza por tener dos argumentos esenciales:
- El número de filas de la matriz
- El número de columnas de la misma
Mediante esta función, se conforma una matriz aleatoria integrada por valores que oscilan entre 0 y 1.
Nota: De manera predeterminada, Matlab crea valores aleatorios bajo una distribución de probabilidad uniforme, cubriendo todos los valores posibles. No obstante, existe la posibilidad de aplicar otras distribuciones probabilísticas para la generación de estos números.
Vamos a ver un ejemplo práctico.
Al escribir rand(2,3), Matlab elaborará una matriz rectangular de 2x3, impregnada de valores aleatorios.
>> rand(2,3)
De esta forma, Matlab produce una matriz aleatoria de 2x3, incluyendo valores aleatorios que se encuentran entre 0 y 1.
Por defecto, los números aleatorios se distribuyen de manera uniforme en el intervalo (0,1), lo que significa que poseen idénticas probabilidades de ser seleccionados.
ans =
0.495435 0.651593 0.093860
0.449491 0.788723 0.028347
Para elaborar una matriz aleatoria con números del 0 al 10, simplemente multiplica la función rand() por 10.
El resultado será una matriz aleatoria conformada por números reales aleatorios que se encuentran en el rango de 0 a 10.
>> rand(2,3)*10
ans =
1.35346 1.04275 0.73193
5.51170 0.39138 8.66168
Para conseguir una matriz aleatoria de números enteros entre 0 y 10, emplea la función de redondeo round().
Por ejemplo, al introducir round(rand(2,3)*10), se generará una matriz de 2x3 con números enteros en el intervalo de 0 a 10.
>> round(rand(2,3)*10)
ans =
3 9 10
3 6 9
Como alternativa, puedes crear una matriz con valores enteros aleatorios mediante la función randi().
randi(valor máximo, filas, columnas)
La función randi() se especializa en la generación de valores enteros aleatorios y cuenta con tres parámetros:
- El valor máximo aleatorio que puede ser generado
- El número de filas para la matriz
- El número de columnas para la matriz
Como ejemplo, al escribir randi(10,2,3), se genera una matriz:
>> randi(10,2,3)
ans =
1 9 3
2 1 10
En esta ocasión, Matlab crea una matriz aleatoria de enteros, demostrando la versatilidad de la función.
¿Cómo genera Matlab valores aleatorios? Estos valores, en realidad, no son totalmente aleatorios, sino "pseudo-aleatorios". Esto se debe a que un algoritmo los produce basándose en el tiempo actual del sistema del ordenador. Si se desea, es posible replicar la misma secuencia de números aleatorios en diferentes ocasiones. Profundizaremos sobre este tema más adelante.