MATLAB Crea matrice casuale

Ammar Ali 4 luglio 2021
  1. Genera numeri casuali usando la funzione rand() in MATLAB
  2. Genera numeri casuali usando la funzione randi() in MATLAB
  3. Genera numeri casuali usando la funzione randn() in MATLAB
  4. Genera numeri casuali usando la funzione randperm() in MATLAB
  5. Genera numeri casuali usando la funzione betarnd() in MATLAB
  6. Genera numeri casuali usando la funzione random() in MATLAB
MATLAB Crea matrice casuale

Questo tutorial discuterà come generare o creare numeri casuali usando la funzione rand(), randi(), randn(), randperm(), betarand() e random() in MATLAB.

Genera numeri casuali usando la funzione rand() in MATLAB

Se vuoi generare numeri casuali uniformemente distribuiti, puoi usare la funzione rand() in MATLAB, che genera numeri casuali tra 0 e 1. Puoi anche specificare la dimensione della matrice contenente valori casuali e ogni valore sarà compreso tra 0 e 1, che puoi ridimensionare in base alle tue esigenze moltiplicandole con uno scaler. Ad esempio, generiamo una matrice 2 per 2 di valori casuali utilizzando la funzione rand(). Vedi il codice qui sotto.

rn = rand(2)

Produzione:

rn =

    0.2259    0.2277
    0.1707    0.4357

Come puoi vedere nell’output, viene generata una matrice 2 per 2 contenente valori casuali tra 0 e 1. Se vuoi specificare l’intervallo dei numeri casuali, devi usare la formula seguente.

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

In questa formula, a è il limite inferiore, b è il limite superiore e n è la lunghezza dei numeri casuali. Ad esempio, generiamo dieci numeri casuali nell’intervallo da 2 a 8. Vedi il codice sotto.

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

Produzione:

rn =

    7.5403
    4.5812
    3.1089
    7.4293
    7.8785
    4.6332
    2.6667
    3.5484
    4.4523
    5.5694

Ci sono dieci numeri casuali nell’intervallo da 2 a 8. Se vuoi solo numeri interi nell’output, puoi convertire questi numeri casuali in interi usando la funzione round(), che arrotonda un numero in virgola mobile all’intero più vicino . Puoi anche clonare la dimensione e il tipo di dati dei numeri casuali da un array esistente usando la funzione size() per la dimensione e la proprietà like per il tipo di dati. Ad esempio, creiamo un array e generiamo valori casuali in base alla dimensione e al tipo di dati dell’array. Vedi il codice qui sotto.

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

Produzione:

v =

     2     3     1     5


rn =

    0.4886    0.5785    0.2373    0.4588

La dimensione e il tipo di dati dell’array e i numeri casuali sono gli stessi. Controlla questo link per maggiori dettagli sulla funzione rand().

Genera numeri casuali usando la funzione randi() in MATLAB

La funzione sopra genera numeri casuali in virgola mobile, ma se si desidera generare numeri interi casuali, è possibile utilizzare la funzione randi() in MATLAB, che genera numeri interi casuali da 1 a un numero intero specificato che è possibile specificare come primo argomento nella funzione randi(). È inoltre possibile specificare la dimensione della matrice di output contenente valori casuali come secondo e terzo argomento. Ad esempio, generiamo una matrice 3 per 3 contenente numeri interi casuali da 1 a 15. Vedi il codice sotto.

rn = randi(15,3,3)

Produzione:

rn =

     6     1     8
    11    12    14
     3     8    10

La matrice è di dimensioni 3 per 3 e contiene numeri interi casuali tra 1 e 15. Puoi anche generare numeri interi casuali tra un intervallo specifico e devi solo passare l’intervallo tra parentesi quadre come primo argomento del randi() funzione. Ad esempio, generiamo 10 numeri casuali tra -10 e 10. Vedi il codice qui sotto.

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

Produzione:

rn =

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

Ci sono dieci numeri casuali nell’intervallo da -10 a 10. Puoi anche definire il tipo di dati dei numeri interi passando il nome del tipo di dati nella funzione randi(). I tipi di dati che puoi scegliere sono: 'single', 'double', 'int8', 'uint8', 'int16', 'uint16', 'int32' , o 'uint32'. Puoi definire la dimensione dei numeri casuali dalla dimensione dell’array esistente usando la funzione size() e il tipo di dati numerico usando la proprietà like. Ad esempio, generiamo una matrice di valori casuali a seconda della dimensione e del tipo di dati numerico di un array esistente. Vedi il codice qui sotto.

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

Produzione:

v =

     1     2
     6     7


rn =

     6     1
     7     7

La dimensione e il tipo di dati dell’array e i numeri casuali sono gli stessi. Controlla questo link per maggiori dettagli sulla funzione randi().

Genera numeri casuali usando la funzione randn() in MATLAB

Se vuoi generare numeri casuali normalmente distribuiti, puoi usare la funzione randn() in MATLAB. La funzione randn() è la stessa della funzione rand() con solo la differenza nel tipo di distribuzione. La funzione rand() genera numeri casuali distribuiti uniformemente mentre la funzione randn() genera numeri casuali normalmente distribuiti. Puoi utilizzare una di queste funzioni a seconda delle tue esigenze. Controlla questo link per maggiori dettagli sulla funzione randn.

Genera numeri casuali usando la funzione randperm() in MATLAB

Se vuoi generare una permutazione casuale di interi, puoi usare la funzione randperm() in MATLAB. La permutazione casuale degli interi sarà compresa tra 1 e un numero specifico che puoi definire nella funzione randperm() come primo argomento. Puoi anche definire il numero di interi che vuoi generare come secondo argomento nella funzione. Ad esempio, generiamo una permutazione casuale di 6 interi univoci. Vedi il codice qui sotto.

rn = randperm(10,5)

Produzione:

rn =

     2     3    10     8     7

Tutti gli interi sono unici e vanno da 1 a 10. Si noti che la funzione randperm() è la stessa della funzione randi() con la differenza che randperm() genera interi unici, mentre nella randi(), gli interi possono essere ripetuti. Controlla questo link per maggiori dettagli sulla funzione randperm.

Genera numeri casuali usando la funzione betarnd() in MATLAB

Se vuoi generare numeri casuali dalla distribuzione beta, puoi usare la funzione betarnd() in MATLAB. Questa funzione genera interi casuali specificati dal primo e dal secondo argomento: vettori, matrici o array della stessa dimensione. Ad esempio, generiamo una matrice 1 per 5 di numeri casuali dalla distribuzione beta utilizzando due vettori come input. Vedi il codice qui sotto.

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

Produzione:

rn =

    0.1234    0.1847    0.3334    0.2689    0.3678

Puoi anche specificare la dimensione della matrice di output definendola nel terzo e quarto argomento della funzione betarnd(). Controlla questo link per maggiori dettagli sulla funzione betarnd().

Genera numeri casuali usando la funzione random() in MATLAB

Se vuoi generare numeri casuali da un tipo di distribuzione specificato, puoi usare la funzione random() in MATLAB. Devi definire il nome della distribuzione come primo argomento e poi devi passare i parametri di distribuzione. Ad esempio, generiamo numeri casuali normalmente distribuiti utilizzando un valore sigma pari a 0 e un valore mu pari a 1 utilizzando la funzione random(). Vedi il codice qui sotto.

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

Produzione:

rn =

   -0.1649

È possibile definire il nome di distribuzione richiesto nella funzione. Puoi utilizzare molti tipi di distribuzioni come: Beta, Binomial, Exponential, Gamma e molti altri. Controlla questo link per maggiori dettagli sulla funzione random.

Autore: 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

Articolo correlato - MATLAB Matrix