Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

rand

Números aleatorios distribuidos de manera uniforme

Descripción

ejemplo

X = rand devuelve un número aleatorio distribuido de manera uniforme 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 arreglo de sz1 por ... por szN de números aleatorios en el que 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 arreglo de números aleatorios en el que 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 arreglo de números aleatorios del tipo de datos typename. La entrada typename puede ser 'single' o 'double'. Puede utilizar cualquiera de los argumentos de entrada de las sintaxis anteriores.

ejemplo

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

X = rand(s,___) genera números a partir de una secuencia de números aleatorios s en lugar de a partir de la secuencia global predeterminada. Para crear una secuencia, utilice RandStream. Especifique s seguido por cualquiera de las combinaciones de argumentos de las sintaxis anteriores, excepto aquellas que impliquen 'like'. Esta sintaxis no es compatible con la entrada 'like'.

Nota

No se recomiendan las entradas 'seed', 'state' y 'twister' en la función rand. En su lugar, utilice la función rng. Para obtener más información, consulte Sustituir sintaxis no recomendadas de rand y randn.

Ejemplos

contraer todo

Genere una matriz de 5 por 5 de números aleatorios distribuidos de manera uniforme 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 columna de 10 por 1 de números distribuidos uniformemente 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úmeros aleatorios N 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 de 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

Restablezca el estado del generador de números aleatorios a s y, después, cree un vector nuevo de 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 los ajustes del generador de números aleatorios. Para obtener más información, consulte Sustituir sintaxis no recomendadas de rand y randn.

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

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 de 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 arreglo existente.

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

    0.8147    0.1270
    0.9058    0.9134

Es habitual combinar las dos líneas anteriores de código en una única 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 arreglo de números aleatorios que sea del 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 dispone de Parallel Computing Toolbox™, cree un arreglo distribuido de 1000 por 1000 de números aleatorios con el tipo de datos subyacente single. En el caso del 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 arreglo de números aleatorios que sea del mismo tamaño, tipo de datos principal y tipo de datos subyacente que p.

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

    'distributed'
underlyingType(X)
ans =

    'single'

Argumentos de entrada

contraer todo

Tamaño de la matriz cuadrada, especificado como 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 separados de valores enteros.

  • Si el tamaño de una dimensión cualquiera es 0, X es un arreglo vacío.

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

  • Más allá de la segunda dimensión, rand ignora las dimensiones finales de tamaño 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 vector fila de valores enteros. Cada elemento de este vector indica el tamaño de la dimensión correspondiente:

  • Si el tamaño de una dimensión cualquiera es 0, X es un arreglo vacío.

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

  • Más allá de la segunda dimensión, rand ignora las dimensiones finales de tamaño 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 arreglo de 2 por 3 por 4.

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

Tipo de datos (clase) que crear, especificada como 'double', 'single' o nombre de otra clase que sea compatible con rand.

Ejemplo: rand(5,'single')

Prototipo del arreglo que crear, especificado como arreglo numérico.

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

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

Secuencia de números aleatorios, especificada como objeto RandStream.

Ejemplo: s = RandStream('dsfmt19937'); rand(s,[3 1])

Sugerencias

  • La secuencia de números que produce rand viene determinada por los ajustes internos del generador de números pseudoaleatorios uniforme que subyace a rand, randi y randn. Puede controlar ese generador de números aleatorios compartido utilizando rng.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a