Matriz aleatoria en Octave
En esta lección, abordaremos el procedimiento para generar una matriz repleta de valores aleatorios en Octave, y para ello, me serviré de un ejemplo práctico.
Si tu objetivo es generar una matriz de 2x3 de manera aleatoria, tienes que emplear la función rand(filas, columnas), así:
>> rand(2,3)
De esta forma, Octave se encargará de crear una matriz aleatoria cuyos valores oscilen entre 0 y 1.
ans =
0.495435 0.651593 0.093860
0.449491 0.788723 0.028347
Cabe señalar que cada vez que ejerzas este procedimiento, los números generados variarán y estarán distribuidos de manera homogénea en el intervalo (0,1).
Ahora bien, si tu interés radica en la creación de un arreglo aleatorio con valores comprendidos entre 0 y 10, debes multiplicar la función rand() por 10, de la siguiente forma:
>> rand(2,3)*10
ans =
1.35346 1.04275 0.73193
5.51170 0.39138 8.66168
En caso de querer generar un arreglo aleatorio integrado por números enteros, es recomendable que combines la función rand() con la función round().
Para ilustrar esto, crearemos una matriz de 2x3 con valores aleatorios que se sitúen entre 0 y 10:
>> round(rand(2,3)*10)
ans =
3 9 10
3 6 9
Como alternativa, puedes utilizar randi(valor máximo, filas, columnas), un recurso que te llevará al mismo resultado:
>> randi(10,2,3)
ans =
1 9 3
2 1 10
En esta ocasión, Octave generará una matriz aleatoria conformada por valores enteros al azar.
Es pertinente cuestionarnos: ¿Cómo es que Octave genera estos valores aleatorios? Pues bien, la mayoría de los algoritmos encargados de esta tarea hacen uso de listas extensas con variados tipos de distribuciones. Esto significa que no estamos frente a números genuinamente aleatorios, sino a valores pseudorandom. Octave inicia este algoritmo apoyándose en el tiempo marcado por el reloj del ordenador, lo que garantiza una diversidad constante en los números. Sin embargo, Octave también ofrece la posibilidad de utilizar la misma secuencia de números aleatorios de manera continua.