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.

randi

Pseudoaleatorio enteros distribuidos uniformemente

Descripción

X = randi(imax) devuelve un entero escalar pseudoaleatorio entre 1 y imax.

ejemplo

X = randi(imax,n) devuelve una matriz n-by-n de enteros pseudoaleatorio extraídos de la distribución uniforme discreta en el intervalo [1,imax .

ejemplo

X = randi(imax,sz1,...,szN) devuelve un array sz1-by-...-by-szN donde sz1,...,szN indica el tamaño de cada dimensión. Por ejemplo, randi(10,3,4) devuelve una matriz de 3 por 4 de enteros pseudoaleatorio entre 1 y 10.

ejemplo

X = randi(imax,sz) devuelve una matriz en la que el tamaño del vector sz define size(X). Por ejemplo, randi(10,[3,4]) devuelve una matriz de 3 por 4 de enteros pseudoaleatorio entre 1 y 10.

X = randi(imax,classname) devuelve un entero pseudoaleatorio donde classname especifica el tipo de datos. classname puede ser 'single', 'double', 'int8', 'uint8', 'int16', 'uint16', 'int32' o 'uint32'.

X = randi(imax,n,classname) devuelve una matriz n-by-n de tipo de datos classname.

ejemplo

X = randi(imax,sz1,...,szN,classname) devuelve una matriz sz1-by-...-by-szN de tipo de datos classname.

X = randi(imax,sz,classname) devuelve una matriz donde size vector sz define size(X) y classname define class(X).

X = randi(imax,'like',p) devuelve un entero pseudoaleatorio como p; Esto es, con el mismo tipo de datos (clase).

X = randi(imax,n,'like',p) devuelve una matriz n-by-n como p.

X = randi(imax,sz1,...,szN,'like',p) devuelve una matriz sz1-by-...-by-szN como p.

ejemplo

X = randi(imax,sz,'like',p) devuelve una matriz como p donde size vector sz define size(X).

X = randi([imin,imax],___) devuelve una matriz que contiene números enteros dibujados de la distribución uniforme discreta en el intervalo [imin,imax], utilizando cualquiera de las sintaxis anteriores.

Ejemplos

contraer todo

Genere una matriz de 5 por 5 de enteros aleatorios entre 1 y 10. La primera entrada a randi indica el número entero más grande del intervalo de muestreo (el número entero más pequeño del intervalo es 1).

r = randi(10,5)
r = 5×5

     9     1     2     2     7
    10     3    10     5     1
     2     6    10    10     9
    10    10     5     8    10
     7    10     9    10     7

Genere un vector de columna de 10 por 1 de enteros aleatorios distribuidos uniformemente del intervalo de muestra [-5,5].

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

     3
     4
    -4
     5
     1
    -4
    -2
     1
     5
     5

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

s = rng;
r = randi(10,1,5)
r = 1×5

     9    10     2    10     7

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

rng(s);
r1 = randi(10,1,5)
r1 = 1×5

     9    10     2    10     7

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, vea Reemplazar Syntaxes desalentados de Rand y randn.

Cree una matriz de 3 por 2 por 3 de enteros aleatorios distribuidos uniformemente entre 1 y 500.

X = randi(500,[3,2,3])
X = 
X(:,:,1) =

   408   457
   453   317
    64    49


X(:,:,2) =

   140   483
   274    79
   479   486


X(:,:,3) =

   479    71
   243   211
   401   458

Cree un vector 1 por 4 de números aleatorios cuyos elementos son de tipo int16.

r = randi(100,1,4,'int16')
r = 1x4 int16 row vector

   82   91   13   92

class(r)
ans = 
'int16'

Cree una matriz de enteros aleatorios distribuidos uniformemente entre 1 y 10 con el mismo tamaño que una matriz existente.

A = [3 2; -2 1];
sz = size(A);
X = randi(10,sz)
X = 2×2

     9     2
    10    10

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

X = randi(10,size(A));

Cree una matriz de 2 por 2 de enteros con signo de 8 bits.

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

Cree una matriz de enteros aleatorios que tenga el mismo tamaño y tipo de datos que p.

X = randi(10,size(p),'like',p)
X = 2x2 int8 matrix

    9    2
   10   10

class(X)
ans = 
'int8'

Argumentos de entrada

contraer todo

Entero más grande en el intervalo de muestra, especificado como entero positivo. randi dibuja valores de la distribución uniforme en el intervalo de muestra [1,imax].

Ejemplo: randi(10,5)

Número entero más pequeño en el intervalo de muestra, especificado como un entero escalar.

Tanto imin como imax deben ser enteros que satisfagan iminimax.

Por ejemplo, randi([50,100],5) devuelve una matriz de 5 por 5 de enteros aleatorios entre (e incluyendo) 50 y 100.

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

  • Si el tamaño de cualquier dimensión es 0, X es una matriz vacía.

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

  • Más allá de la segunda dimensión, randi omite las cotas de arrastre con un tamaño de 1. Por ejemplo, randi([5,10],3,1,1,1) produce un vector 3 por 1 de enteros aleatorios entre 5 y 10.

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

Tamaño de cada dimensión, especificada 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 una matriz vacía.

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

  • Más allá de la segunda dimensión, randi omite las cotas de arrastre con un tamaño de 1. Por ejemplo, randi([5,10],[3,1,1,1]) produce un vector 3 por 1 de enteros aleatorios entre 5 y 10.

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

Clase de salida, especificada como 'double', 'single', 'int8', 'uint8', 'uint16' , 'int16', 'int32', 'uint32' o el nombre de otra clase que proporciona soporte para randi.

Ejemplo: randi(5,5,'int8')

Tipos de datos: char

Prototipo de Array para crear, especificado como un array numérico.

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

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
Soporte de números complejos:

Sugerencias

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

  • Las matrices devueltas por randi pueden contener valores enteros repetidos. Este comportamiento a veces se denomina muestreo con reemplazo. Utilice randperm si necesita todos los valores exclusivos.

Capacidades ampliadas

Introducido en R2008b