Main Content

rand

Numeri casuali distribuiti uniformemente

Descrizione

X = rand restituisce uno scalare casuale estratto dalla distribuzione uniforme nell'intervallo (0,1).

esempio

X = rand(n) restituisce una matrice n per n di numeri casuali distribuiti uniformemente.

esempio

X = rand(sz1,...,szN) restituisce un array sz1 x...x szN di numeri casuali dove sz1,...,szN indica la grandezza di ciascuna dimensione. Ad esempio, rand(3,4) restituisce una matrice 3x4.

esempio

X = rand(sz) restituisce un array di numeri casuali dove il vettore di dimensione sz definisce size(X). Ad esempio, rand([3 4]) restituisce una matrice 3x4.

esempio

X = rand(___,typename) restituisce un array di numeri casuali del tipo di dati typename. L’input typename può essere "single" o "double". È possibile utilizzare uno qualsiasi degli argomenti di input nelle sintassi precedenti.

esempio

X = rand(___,"like",p) restituisce un array di numeri casuali come p; ossia, dello stesso tipo di dati e della stessa complessità (reale o complessa) di p. È possibile specificare typename o "like", ma non entrambi.

X = rand(s,___) genera numeri dal flusso di numeri casuali s anziché dal flusso globale predefinito. Per creare un flusso, utilizzare RandStream. È possibile specificare s seguito da una qualsiasi combinazione di argomenti di input nelle sintassi precedenti.

Esempi

comprimi tutto

Generare una matrice 5x5 di numeri casuali distribuiti uniformemente tra 0 e 1.

r = rand(5)
r = 5×5

    0.8147    0.0975    0.1576    0.1419    0.6557
    0.9058    0.2785    0.9706    0.4218    0.0357
    0.1270    0.5469    0.9572    0.9157    0.8491
    0.9134    0.9575    0.4854    0.7922    0.9340
    0.6324    0.9649    0.8003    0.9595    0.6787

Generare un vettore colonna 10x1 di numeri distribuiti uniformemente nell'intervallo (-5,5).

r = -5 + (5+5)*rand(10,1)
r = 10×1

    3.1472
    4.0579
   -3.7301
    4.1338
    1.3236
   -4.0246
   -2.2150
    0.4688
    4.5751
    4.6489

Di solito, è possibile generare N numeri casuali nell’intervallo (a,b) con la formula r = a + (b-a).*rand(N,1).

Utilizzare la funzione randi (anziché rand) per generare 5 numeri interi casuali distribuiti uniformemente tra 10 e 50.

r = randi([10 50],1,5)
r = 1×5

    43    47    15    47    35

Salvare lo stato attuale del generatore di numeri casuali e creare un vettore 1x5 di numeri casuali.

s = rng;
r = rand(1,5)
r = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

Ripristinare lo stato del generatore di numeri casuali su s, quindi creare un nuovo vettore 1x5 di numeri casuali. I valori sono uguali a quelli precedenti.

rng(s);
r1 = rand(1,5)
r1 = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

Creare un array 3x2x3 di numeri casuali.

X = rand([3,2,3])
X = 
X(:,:,1) =

    0.8147    0.9134
    0.9058    0.6324
    0.1270    0.0975


X(:,:,2) =

    0.2785    0.9649
    0.5469    0.1576
    0.9575    0.9706


X(:,:,3) =

    0.9572    0.1419
    0.4854    0.4218
    0.8003    0.9157

Creare un vettore 1x4 di numeri casuali i cui elementi sono a precisione singola.

r = rand(1,4,"single")
r = 1x4 single row vector

    0.8147    0.9058    0.1270    0.9134

class(r)
ans = 
'single'

Creare una matrice di numeri casuali distribuiti uniformemente con la stessa dimensione di un array esistente.

A = [3 2; -2 1];
sz = size(A);
X = rand(sz)
X = 2×2

    0.8147    0.1270
    0.9058    0.9134

È prassi comune combinare le due righe di codice precedenti in un'unica riga:

X = rand(size(A));

Creare una matrice 2x2 di numeri casuali a precisione singola.

p = single([3 2; -2 1]);

Creare un array di numeri casuali della stessa dimensione e dello stesso tipo di dati di p.

X = rand(size(p),"like",p)
X = 2x2 single matrix

    0.8147    0.1270
    0.9058    0.9134

class(X)
ans = 
'single'

Generare 10 numeri complessi casuali dalla distribuzione uniforme su un dominio quadrato con parti reali e immaginarie comprese nell'intervallo (0,1).

a = rand(10,1,"like",1i)
a = 10×1 complex

   0.8147 + 0.9058i
   0.1270 + 0.9134i
   0.6324 + 0.0975i
   0.2785 + 0.5469i
   0.9575 + 0.9649i
   0.1576 + 0.9706i
   0.9572 + 0.4854i
   0.8003 + 0.1419i
   0.4218 + 0.9157i
   0.7922 + 0.9595i

Argomenti di input

comprimi tutto

Dimensione della matrice quadrata, specificata come valore intero.

  • Se n è 0, X è una matrice vuota.

  • Se n è negativo, viene trattato come 0.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Grandezza di ciascuna dimensione, specificata come argomenti separati di valori interi.

  • Se la grandezza di qualsiasi dimensione è 0, X è un array vuoto.

  • Se la grandezza di qualsiasi dimensione è negativa, viene trattata come 0.

  • Oltre la seconda dimensione, rand ignora le dimensioni finali con grandezza pari a 1. Ad esempio, rand(3,1,1,1) produce un vettore 3x1 di numeri casuali.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Grandezza di ciascuna dimensione, specificata come vettore riga di valori interi. Ciascun elemento di questo vettore indica la grandezza della dimensione corrispondente:

  • Se la grandezza di qualsiasi dimensione è 0, X è un array vuoto.

  • Se la grandezza di qualsiasi dimensione è negativa, viene trattata come 0.

  • Oltre la seconda dimensione, rand ignora le dimensioni finali con grandezza pari a 1. Ad esempio, rand([3 1 1 1]) produce un vettore 3x1 di numeri casuali.

Esempio sz = [2 3 4] crea un array 2x3x4.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Tipo di dati (classe) da creare, specificato come "double", "single" o il nome di un’altra classe che fornisce supporto rand.

Esempio rand(5,"single")

Prototipo di array da creare, specificato come un array numerico.

Esempio rand(5,"like",p)

Tipi di dati: single | double
Supporto numeri complessi:

Flusso di numeri casuali, specificato come oggetto RandStream.

Esempio s = RandStream("dsfmt19937"); rand(s,[3 1])

Suggerimenti

  • La sequenza di numeri prodotta da rand è determinata dalle impostazioni interne del generatore di numeri pseudocasuali uniformi che è alla base di rand, randi e randn. È possibile controllare quel generatore di numeri casuali condiviso utilizzando rng.

Funzionalità estese

Cronologia versioni

Introduzione prima di R2006a

espandi tutto