Contenido principal

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),'+')

Figure contains an axes object. The axes contains a line object which displays its values using only markers.

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))

Figure contains an axes object. The axes object contains an object of type scatter.

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