Matrizes aleatórias no Matlab
Nesta aula, exploraremos o processo de criação de uma matriz com valores aleatórios no Matlab, utilizando a função rand().
rand(linhas, colunas)
A função rand() se caracteriza por dois parâmetros essenciais:
- O número de linhas na matriz
- O número de colunas na matriz
Com essa função, é possível gerar uma matriz aleatória composta de valores que oscilam entre 0 e 1.
Observação: O Matlab, por predefinição, gera valores aleatórios que seguem uma distribuição uniforme, abrangendo todos os valores possíveis. Contudo, existe a possibilidade de empregar outras distribuições probabilísticas para a geração de números aleatórios.
Vejamos um exemplo prático:
Ao digitar rand(2,3), o Matlab cria uma matriz retangular de dimensões 2x3, preenchida com valores aleatórios.
>> rand(2,3)
Assim, o Matlab produz uma matriz 2x3, inserindo valores aleatórios entre 0 e 1.
De maneira padrão, os números aleatórios distribuem-se de forma uniforme no intervalo de (0,1), o que implica igual probabilidade de geração para cada número.
ans =
0.495435 0.651593 0.093860
0.449491 0.788723 0.028347
Para gerar uma matriz aleatória com números no intervalo de 0 a 10, basta multiplicar a função rand() por 10.
O resultado é uma matriz aleatória com números reais aleatórios variando entre 0 e 10.
>> rand(2,3)*10
ans =
1.35346 1.04275 0.73193
5.51170 0.39138 8.66168
Para criar uma matriz aleatória de números inteiros dentro do intervalo de 0 a 10, a função de arredondamento round() é a solução.
Por exemplo, ao escrever round(rand(2,3)*10), formamos uma matriz 2x3 com números inteiros que variam de 0 a 10.
>> round(rand(2,3)*10)
ans =
3 9 10
3 6 9
Como alternativa, a função randi() permite gerar matrizes com valores inteiros aleatórios.
randi(valor máximo, linhas, colunas)
Essencialmente, a função randi() é especializada na geração de valores inteiros aleatórios e dispõe de três parâmetros:
- O valor máximo aleatório que pode ser gerado
- O número de linhas na matriz
- O número de colunas na matriz
Para ilustrar, digitando randi(10,2,3), o Matlab produz uma matriz 2x3 de números inteiros aleatórios.
>> randi(10,2,3)
ans =
1 9 3
2 1 10
Neste contexto, o Matlab igualmente gera uma matriz aleatória, mas desta vez composta por números inteiros.
Como o Matlab gera valores aleatórios? Na verdade, estes valores não são completamente aleatórios. Eles são considerados "pseudo-aleatórios", pois são produzidos por um algoritmo que utiliza o tempo corrente do computador como base para a geração dos números. Interessantemente, é possível replicar a mesma sequência de números aleatórios em diferentes execuções, caso isso seja necessário. Abordaremos mais detalhes sobre isso em breve.