MATLAB Criar Matriz Aleatória

Ammar Ali 30 janeiro 2023
  1. Gere números aleatórios usando a função rand() no MATLAB
  2. Gerar números aleatórios usando a função randi() no MATLAB
  3. Gerar números aleatórios usando a função randn() no MATLAB
  4. Gerar números aleatórios usando a função randperm() no MATLAB
  5. Gerar números aleatórios usando a função betarnd() no MATLAB
  6. Gerar Números Aleatórios usando a função random() no MATLAB
MATLAB Criar Matriz Aleatória

Este tutorial irá discutir como gerar ou criar números aleatórios usando a função rand(), randi(), randn(), randperm(), betarand() e random() em MATLAB.

Gere números aleatórios usando a função rand() no MATLAB

Se você deseja gerar números aleatórios uniformemente distribuídos, você pode usar a função rand() no MATLAB, que gera números aleatórios entre 0 e 1. Você também pode especificar o tamanho do array contendo valores aleatórios, e cada valor será entre 0 e 1, que você pode dimensionar de acordo com seus requisitos, multiplicando-os com um dimensionador. Por exemplo, vamos gerar um array 2 por 2 de valores aleatórios usando a função rand(). Veja o código abaixo.

rn = rand(2)

Resultado:

rn =

    0.2259    0.2277
    0.1707    0.4357

Como você pode ver na saída, um array 2 por 2 contendo valores aleatórios entre 0 e 1 é gerada. Se você deseja especificar o intervalo dos números aleatórios, você deve usar a fórmula abaixo.

rn = a + (b-a).*rand(n,1)

Nesta fórmula, a é o limite inferior, b é o limite superior e n é o comprimento dos números aleatórios. Por exemplo, vamos gerar dez números aleatórios no intervalo de 2 a 8. Veja o código abaixo.

a = 2;
b = 8;
n = 10;
rn = a + (b-a).*rand(n,1)

Resultado:

rn =

    7.5403
    4.5812
    3.1089
    7.4293
    7.8785
    4.6332
    2.6667
    3.5484
    4.4523
    5.5694

Existem dez números aleatórios no intervalo de 2 a 8. Se você quiser apenas inteiros na saída, você pode converter esses números aleatórios em inteiros usando a função round(), que arredonda um número de ponto flutuante para o inteiro mais próximo . Você também pode clonar o tamanho e o tipo de dados dos números aleatórios de um array existente usando a função size() para o tamanho e a propriedade like para o tipo de dados. Por exemplo, vamos criar um array e gerar valores aleatórios de acordo com o tamanho e o tipo de dados dessa matriz. Veja o código abaixo.

v = [2 3 1 5]
rn = rand(size(v),'like',v)

Resultado:

v =

     2     3     1     5


rn =

    0.4886    0.5785    0.2373    0.4588

O tamanho e o tipo de dados do array e os números aleatórios são os mesmos. Verifique este link para mais detalhes sobre a função rand().

Gerar números aleatórios usando a função randi() no MATLAB

A função acima gera números aleatórios de ponto flutuante, mas se você deseja gerar números inteiros aleatórios, você pode usar a função randi() no MATLAB, que gera números inteiros aleatórios de 1 a um inteiro especificado que você pode especificar como um primeiro argumento na função randi(). Você também pode especificar o tamanho do array de saída contendo valores aleatórios como o segundo e o terceiro argumento. Por exemplo, vamos gerar um array 3 por 3 contendo números inteiros aleatórios de 1 a 15. Veja o código abaixo.

rn = randi(15,3,3)

Resultado:

rn =

     6     1     8
    11    12    14
     3     8    10

A matriz é de tamanho 3 por 3 que contém números inteiros aleatórios entre 1 e 15. Você também pode gerar números inteiros aleatórios entre um intervalo específico, e você só precisa passar o intervalo entre colchetes como o primeiro argumento do função randi(). Por exemplo, vamos gerar 10 números aleatórios entre -10 a 10. Veja o código abaixo.

rn = randi([-10,10],10,1)

Resultado:

rn =

     2
     8
     6
     2
    -7
    -5
     8
   -10
     0
    -7

Existem dez números aleatórios no intervalo de -10 a 10. Você também pode definir o tipo de dados dos números inteiros passando o nome do tipo de dados na função randi(). Os tipos de dados que você pode escolher são: 'único', 'duplo', 'int8', 'uint8', 'int16', 'uint16', 'int32' , ou 'uint32'. Você pode definir o tamanho dos números aleatórios a partir do tamanho do array existente usando a função size() e o tipo de dados numérico usando a propriedade like. Por exemplo, vamos gerar um array de valores aleatórios dependendo do tamanho e tipo de dados numéricos de um array existente. Veja o código abaixo.

v = [1 2; 6 7]
rn = randi(7,size(v),'like',v)

Resultado:

v =

     1     2
     6     7


rn =

     6     1
     7     7

O tamanho e o tipo de dados do array e os números aleatórios são os mesmos. Verifique este link para mais detalhes sobre a função randi().

Gerar números aleatórios usando a função randn() no MATLAB

Se você deseja gerar números aleatórios normalmente distribuídos, você pode usar a função randn() no MATLAB. A função randn() é igual à função rand() com apenas a diferença no tipo de distribuição. A função rand() gera números aleatórios uniformemente distribuídos, enquanto a função randn() gera números aleatórios normalmente distribuídos. Você pode usar qualquer uma dessas funções, dependendo de seus requisitos. Verifique este link para mais detalhes sobre a função randn.

Gerar números aleatórios usando a função randperm() no MATLAB

Se você deseja gerar uma permutação aleatória de inteiros, você pode usar a função randperm() no MATLAB. A permutação aleatória dos inteiros será entre 1 e um número específico que você pode definir na função randperm() como o primeiro argumento. Você também pode definir o número de inteiros que deseja gerar como o segundo argumento na função. Por exemplo, vamos gerar uma permutação aleatória de 6 inteiros únicos. Veja o código abaixo.

rn = randperm(10,5)

Resultado:

rn =

     2     3    10     8     7

Todos os inteiros são únicos e variam de 1 a 10. Observe que a função randperm() é a mesma que a função randi(), com a diferença de que randperm() gera inteiros únicos, enquanto no função randi(), os inteiros podem ser repetidos. Verifique este link para mais detalhes sobre a função randperma.

Gerar números aleatórios usando a função betarnd() no MATLAB

Se você deseja gerar números aleatórios da distribuição beta, você pode usar a função betarnd() no MATLAB. Esta função gera inteiros aleatórios especificados pelo primeiro e segundo argumento: vetores, matrizes ou arrays do mesmo tamanho. Por exemplo, vamos gerar um array 1 por 5 de números aleatórios da distribuição beta usando dois vetores como entrada. Veja o código abaixo.

a = [1 2 3 4 5];
b = [9 8 7 6 5];
rn = betarnd(a,b)

Resultado:

rn =

    0.1234    0.1847    0.3334    0.2689    0.3678

Você também pode especificar o tamanho do array de saída definindo-a no terceiro e quarto argumento da função betarnd(). Verifique este link para mais detalhes sobre a função betarnd().

Gerar Números Aleatórios usando a função random() no MATLAB

Se você deseja gerar números aleatórios de um tipo de distribuição especificado, você pode usar a função random() no MATLAB. Você tem que definir o nome da distribuição como o primeiro argumento, e depois disso, você precisa passar os parâmetros de distribuição. Por exemplo, vamos gerar números aleatórios normalmente distribuídos usando um valor sigma de 0 e um valor mu de 1 usando a função random(). Veja o código abaixo.

s = 0;
m = 1;
rn = random('Normal',s,m)

Resultado:

rn =

   -0.1649

Você pode definir seu nome de distribuição necessário na função. Você pode usar muitos tipos de distribuição como: Beta, Binomial, Exponencial, Gama e muitos mais. Verifique este link para mais detalhes sobre a função aleatório.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artigo relacionado - MATLAB Matrix