Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

rand

Números aleatorios distribuidos uniformemente

Descripción

ejemplo

X = rand devuelve un único número aleatorio distribuido uniformemente en el intervalo (0,1).

ejemplo

X = rand(n) devuelve una matriz de n por n de números aleatorios.

ejemplo

X = rand(sz1,...,szN) devuelve un array de sz1por ... por szN de números aleatorios donde sz1,...,szN indica el tamaño de cada dimensión. Por ejemplo, rand(3,4) devuelve una matriz de 3 por 4.

ejemplo

X = rand(sz) devuelve un array de números aleatorios donde el vector de tamaño sz especifica size(X). Por ejemplo, rand([3 4]) devuelve una matriz de 3 por 4.

ejemplo

X = rand(___,typename) devuelve un array de números aleatorios con el tipo de datos typename. La entrada typename puede ser 'single' o 'double'. Puede utilizar cualquiera de los argumentos de entrada en las sintaxis anteriores.

ejemplo

X = rand(___,'like',p) devuelve un array de números aleatorios como p, es decir, del mismo tipo de objeto que p. Puede especificar typename o 'like', pero no ambos.

Nota

No se recomiendan las entradas 'seed', 'state' y 'twister' para la función rand. En su lugar, utilice la función rng. Para obtener más información, consulte Reemplazar Syntaxes desalentados de Rand y randn.

Ejemplos

contraer todo

Genere una matriz de 5 por 5 de números aleatorios distribuidos uniformemente entre 0 y 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

Genere un vector de columna de 10 por 1 de números uniformemente distribuidos en el intervalo (-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

En general, puede generar N números aleatorios en el intervalo (a,b) con la fórmula r = a + (b-a).*rand(N,1).

Utilice la función randi (en lugar de rand) para generar 5 enteros aleatorios a partir de la distribución uniforme entre 10 y 50.

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

    43    47    15    47    35

Genere un único número complejo aleatorio con partes reales e imaginarias en el intervalo (0,1).

a = rand + 1i*rand
a = 0.8147 + 0.9058i

Guarde el estado actual del generador de números aleatorios y cree un vector 1 por 5 de números aleatorios.

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

    0.8147    0.9058    0.1270    0.9134    0.6324

Restaure el estado del generador de números aleatorios a s y, a continuación, cree un nuevo vector 1 por 5 de números aleatorios. Los valores son los mismos que antes.

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

    0.8147    0.9058    0.1270    0.9134    0.6324

Utilice siempre la función rng (en lugar de las funciones rand o randn) para especificar la configuración del generador de números aleatorios. Para obtener más información, consulte Reemplazar Syntaxes desalentados de Rand y randn.

Cree un array de números aleatorios de 3 por 2 por 3.

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

Cree un vector 1 por 4 de números aleatorios cuyos elementos sean de precisión simple.

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

    0.8147    0.9058    0.1270    0.9134

class(r)
ans = 
'single'

Cree una matriz de números aleatorios con el mismo tamaño que un array existente.

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

    0.8147    0.1270
    0.9058    0.9134

Es un patrón común para combinar las dos líneas anteriores de código en una sola línea:

X = rand(size(A));

Cree una matriz de 2 por 2 de números aleatorios de precisión simple.

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

Cree un array de números aleatorios que tenga el mismo tamaño y tipo de datos que p.

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

    0.8147    0.1270
    0.9058    0.9134

class(X)
ans = 
'single'

Si tiene Parallel Computing Toolbox™, cree un array distribuido de 1000 por 1000 de números aleatorios con el tipo de datos subyacente single. Para el tipo de datos distributed, la sintaxis 'like' clona el tipo de datos subyacente además del tipo de datos principal.

p = rand(1000,'single','distributed');
Starting parallel pool (parpool) using the 'local' profile ...
connected to 6 workers.

Cree un array de números aleatorios con el mismo tamaño, tipo de datos principal y tipo de datos subyacente que p.

X = rand(size(p),'like',p);
class(X)
ans =

distributed
classUnderlying(X)
ans =
single

Argumentos de entrada

contraer todo

Tamaño de la matriz cuadrada, especificado como un valor entero.

  • Si n es 0, X es una matriz vacía.

  • Si n es negativo, se trata como 0.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Tamaño de cada dimensión, especificado como argumentos independientes de valores enteros.

  • Si el tamaño de cualquier dimensión es 0, X es un array vacío.

  • Si el tamaño de cualquier dimensión es negativo, se trata como 0.

  • Más allá de la segunda dimensión, rand omite las dimensiones finales con un tamaño de 1. Por ejemplo, rand(3,1,1,1) produce un vector de 3 por 1 de números aleatorios.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Tamaño de cada dimensión, especificado como un vector de fila de valores enteros. Cada elemento de este vector indica el tamaño de la dimensión correspondiente:

  • Si el tamaño de cualquier dimensión es 0, X es un array vacío.

  • Si el tamaño de cualquier dimensión es negativo, se trata como 0.

  • Más allá de la segunda dimensión, rand omite las dimensiones finales con un tamaño de 1. Por ejemplo, rand([3,1,1,1]) produce un vector de 3 por 1 de números aleatorios.

Ejemplo: sz = [2,3,4] crea un array de 2 por 3 por 4.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Tipo de datos (clase) que se debe crear, especificado como 'double', 'single' o el nombre de otra clase que proporcione compatibilidad con rand.

Ejemplo: rand(5,'single')

Prototipo de array que se creará, especificado como un array numérico.

Ejemplo: rand(5,'like',p)

Tipos de datos: single | double
Soporte de números complejos:

Sugerencias

  • La secuencia de números producida por rand se determina mediante la configuración interna del generador de números pseudoaleatorios uniformes que subyace a rand, randi y randn. Puede controlar ese generador de números aleatorios compartidos mediante rng.

Capacidades ampliadas

Introducido antes de R2006a