Main Content

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.

random

Variables aleatorias de la distribución de mixtura gaussiana

Descripción

Y = random(gm) genera una variable aleatoria de 1 por m a partir de la distribución de mixtura gaussiana gm de dimensión m.

ejemplo

Y = random(gm,n) devuelve n variables aleatorias. Cada fila de Y es una variable aleatoria generada a partir de la distribución de mixtura gaussiana gm de dimensión m.

ejemplo

[Y,compIdx] = random(___) también devuelve un vector índice de n por 1 compIdx para cualquiera de los argumentos de entrada de las sintaxis anteriores. compIdx(i) indica el componente de mixtura usado para generar la i-ésima variable aleatoria Y(i,:).

ejemplo

Ejemplos

contraer todo

Cree un objeto gmdistribution y genere variables aleatorias.

Establezca los parámetros de distribución (medias y covarianzas) de una distribución de mixtura gaussiana de dos variables y dos componentes.

mu = [1 2;-3 -5];
sigma = [1 1]; % shared diagonal covariance matrix

Cree un objeto gmdistribution usando la función gmdistribution. De forma predeterminada, la función crea una mixtura de proporción equitativa.

gm = gmdistribution(mu,sigma)
gm = 

Gaussian mixture distribution with 2 components in 2 dimensions
Component 1:
Mixing proportion: 0.500000
Mean:     1     2

Component 2:
Mixing proportion: 0.500000
Mean:    -3    -5

Genere 1000 variables aleatorias.

rng('default'); % For reproducibility
[Y,compIdx] = random(gm,1000);

compIdx(i) indica el componente de mezcla usado para generar la i-ésima variable aleatoria Y(i,:). Cuente el número de variables aleatorias generadas por Component 1.

numIdx1 = sum(compIdx == 1)
numIdx1 = 512

random genera cerca de la mitad de las variables aleatorias usando Component 1 porque gm tiene unas proporciones de mezcla equitativas.

Represente las variables aleatorias generadas usando scatter.

scatter(Y(:,1),Y(:,2),10,'.') % Scatter plot with points of size 10

Reinicie el generador de números aleatorios para generar la misma variable aleatoria.

Establezca los parámetros de distribución (medias, covarianzas y proporciones de mezcla) de dos componentes de mixtura gaussiana de dos variables.

p = [0.4 0.6];               % Mixing proportions     
mu = [1 2;-3 -5];            % Means
sigma = cat(3,[2 .5],[1 1])  % Covariances 1-by-2-by-2 array
sigma = 
sigma(:,:,1) =

    2.0000    0.5000


sigma(:,:,2) =

     1     1

La función cat concatena las covarianzas en la dimensión del tercer arreglo. Las matrices de covarianza establecidas son matrices diagonales. sigma(1,:,i) contiene los elementos diagonales de la matriz de covarianzas del componente i.

Cree un objeto gmdistribution usando la función gmdistribution.

gm = gmdistribution(mu,sigma);

Guarde el estado actual del generador de números aleatorios y, después, genere una variable aleatoria usando gm.

s = rng;
r = random(gm)
r = 1×2

   -1.1661   -7.2588

Restaure el estado del generador de números aleatorios con el valor s y, después, genere una variable aleatoria usando gm. Los valores son los mismos que antes.

rng(s);
r1 = random(gm)
r1 = 1×2

   -1.1661   -7.2588

Argumentos de entrada

contraer todo

Distribución de mixtura gaussiana, también llamada modelo de mixtura gaussiana (GMM), especificada como un objeto gmdistribution.

Puede crear un objeto gmdistribution usando gmdistribution o fitgmdist. Use la función gmdistribution para crear un objeto gmdistribution indicando los parámetros de distribución. Use la función fitgmdist para ajustar un modelo gmdistribution a los datos de acuerdo con un determinado número de componentes.

Número de variables aleatorias que se desea generar, especificado como un número entero positivo.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Variable aleatoria, devuelta como un vector numérico de 1 por m o una matriz numérica de n por m. Cada fila de Y es una variable aleatoria generada a partir de la distribución de mixtura gaussiana gm de dimensión m.

Índice de componentes, devuelto como un número entero positivo o un vector índice de n por 1, donde compIdx(i) indica el componente de mezcla usado para generar la i-ésima variable aleatoria Y(i,:).

Historial de versiones

Introducido en R2007b