Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

mvnrnd

Números aleatorios normales multivariantes

Descripción

R = mvnrnd(mu,Sigma,n) devuelve una matriz R de n vectores aleatorios seleccionados de la misma distribución normal multivariante, con el vector de media mu y la matriz de covarianzas Sigma. Para obtener más información, consulte Distribución normal multivariante.

ejemplo

R = mvnrnd(mu,Sigma) devuelve una matriz de m por d R de vectores aleatorios obtenidos de m distribuciones independientes normales multivariantes de d dimensiones, con las medias y covarianzas especificadas por mu y Sigma, respectivamente. Cada fila de R es un solo vector aleatorio normal multivariante.

ejemplo

Ejemplos

contraer todo

Genere números aleatorios a partir de la misma distribución normal multivariante.

Defina mu y Sigma y genere 100 números aleatorios.

mu = [2 3];
Sigma = [1 1.5; 1.5 3];
rng('default')  % For reproducibility
R = mvnrnd(mu,Sigma,100);

Represente los números aleatorios.

plot(R(:,1),R(:,2),'+')

Obtenga una muestra de forma aleatoria de 5 distribuciones normales tridimensionales diferentes.

Indique las medias mu y las covarianzas Sigma de las distribuciones. Deje que todas las distribuciones compartan la misma matriz de covarianzas, pero varíe los vectores de media.

firstDim = (1:5)';
mu = repmat(firstDim,1,3)
mu = 5×3

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

Sigma = eye(3)
Sigma = 3×3

     1     0     0
     0     1     0
     0     0     1

Obtenga una muestra aleatoriamente de cada una de las cinco distribuciones.

rng('default')  % For reproducibility
R = mvnrnd(mu,Sigma)
R = 5×3

    1.5377   -0.3077   -0.3499
    3.8339    1.5664    5.0349
    0.7412    3.3426    3.7254
    4.8622    7.5784    3.9369
    5.3188    7.7694    5.7147

Represente los resultados.

scatter3(R(:,1),R(:,2),R(:,3))

Argumentos de entrada

contraer todo

Medias de las distribuciones normales multivariantes, especificadas como un vector numérico de 1 por d o una matriz numérica de m por d.

  • Si mu es un vector, entonces mvnrnd replica el vector para coincidir con las siguiente dimensión de Sigma.

  • Si mu es una matriz, cada fila de mu es el vector medio de una sola distribución normal multivariante.

Tipos de datos: single | double

Las covarianzas de las distribuciones normales multivariantes, especificadas como una matriz semidefinida, positiva y simétrica de d por d o un arreglo numérico de d por d por m.

  • Si Sigma es una matriz, mvnrnd replicará la matriz para coincidir con el número de filas de mu.

  • Si Sigma es un arreglo, cada página de Sigma, Sigma(:,:,i), corresponderá a la matriz de covarianzas de una sola distribución normal multivariante y, por tanto, se tratará de una matriz semidefinida, positiva y simétrica.

Si las matrices de covarianzas son diagonales, que contienen varianzas en la diagonal sin covarianzas fuera de ellas, también puede especificar Sigma como un vector de 1 por d o un arreglo de 1 por d por m que contenga solo las entradas diagonales.

Tipos de datos: single | double

Cantidad de números aleatorios multivariantes, especificada como un entero escalar positivo. n especifica el número de filas de R.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Números aleatorios normales multivariantes, devueltos de una de las siguientes formas:

  • Matriz numérica de m por d, donde m y d son las dimensiones especificadas por mu y Sigma

  • Matriz numérica de n por d, donde n es el argumento de entrada especificado y d es la dimensión especificada por mu y Sigma

Si mu es una matriz y Sigma es un arreglo, mvnrnd calculará R(i,:) usando mu(i,:) y Sigma(:,:,i).

Más acerca de

contraer todo

Sugerencias

  • mvnrnd requiere que la matriz Sigma sea simétrica. Si Sigma tiene una pequeña asimetría, puede usar (Sigma + Sigma')/2 en su lugar para solucionarla.

  • En el caso de una sola dimensión, Sigma es la varianza, no la desviación estándar. Por ejemplo, mvnrnd(0,4) es igual a normrnd(0,2), donde 4 es la varianza y 2 es la desviación estándar.

Referencias

[1] Kotz, S., N. Balakrishnan, and N. L. Johnson. Continuous Multivariate Distributions: Volume 1: Models and Applications. 2nd ed. New York: John Wiley & Sons, Inc., 2000.

Capacidades ampliadas

expandir todo

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido antes de R2006a