Main Content

rand

Números aleatorios distribuidos de manera uniforme

Descripción

X = rand devuelve un escalar aleatorio extraído de la distribución uniforme en el intervalo (0,1).

ejemplo

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

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 define 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 datos y complejidad (real o complejo) 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. Puede especificar s seguido de cualquiera de las combinaciones de argumentos de entrada de las sintaxis anteriores.

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

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

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 distribuidos de manera uniforme 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'

Genere 10 números complejos aleatorios a partir de la distribución uniforme en un dominio cuadrado con partes reales e imaginarias en el intervalo (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

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

expandir todo