random

Случайная варьируемая величина от Гауссова распределения смеси

Описание

пример

Y = random(gm) генерирует 1 m случайной варьируемой величиной от m - размерное Гауссово распределение смеси gm.

пример

Y = random(gm,n) возвращает n случайные варьируемые величины. Каждая строка Y случайная варьируемая величина, сгенерированная от m - размерное Гауссово распределение смеси gm.

пример

[Y,compIdx] = random(___) также возвращает n- 1 вектор индекса compIdx для любого из входных параметров в предыдущих синтаксисах. compIdx(i) указывает, что компонент смеси раньше генерировал ith случайная варьируемая величина Y(i,:).

Примеры

свернуть все

Создайте gmdistribution возразите и сгенерируйте случайные варьируемые величины.

Задайте параметры распределения (средние значения и ковариации) двухкомпонентного двумерного Гауссова распределения смеси.

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

Создайте gmdistribution объект при помощи gmdistribution функция. По умолчанию функция создает равную смесь пропорции.

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

Сгенерируйте 1 000 случайных варьируемых величин.

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

compIdx(i) указывает, что компонент смеси раньше генерировал ith случайная варьируемая величина Y(i,:). Считайте количество случайных варьируемых величин сгенерированным Component1 .

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

random генерирует приблизительно половину случайных варьируемых величин с помощью Component1 потому что gm имеет равные пропорции смешивания.

Постройте сгенерированные случайные варьируемые величины при помощи scatter.

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

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

Сбросьте генератор случайных чисел, чтобы сгенерировать ту же случайную варьируемую величину.

Задайте параметры распределения (средние значения, ковариации и смешивание пропорций) двух двумерных Гауссовых компонентов смеси.

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

cat функция конкатенирует ковариации вдоль третьего измерения массива. Заданные ковариационные матрицы являются диагональными матрицами. sigma(1,:,i) содержит диагональные элементы ковариационной матрицы i компонента.

Создайте gmdistribution объект при помощи gmdistribution функция.

gm = gmdistribution(mu,sigma);

Сохраните текущее состояние генератора случайных чисел, и затем сгенерируйте случайную варьируемую величину с помощью gm.

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

   -1.1661   -7.2588

Восстановите состояние генератора случайных чисел к s, и затем сгенерируйте случайную варьируемую величину с помощью gmЗначения те же, что и прежде.

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

   -1.1661   -7.2588

Входные параметры

свернуть все

Гауссово распределение смеси, также названное смешанной гауссовской моделью (GMM) в виде gmdistribution объект.

Можно создать gmdistribution объект с помощью gmdistribution или fitgmdist. Используйте gmdistribution функция, чтобы создать gmdistribution объект путем определения параметров распределения. Используйте fitgmdist функционируйте, чтобы соответствовать gmdistribution модель к данным, учитывая постоянное число компонентов.

Количество случайных варьируемых величин, чтобы сгенерировать в виде положительного целого числа.

Типы данных: single | double

Выходные аргументы

свернуть все

Случайная варьируемая величина, возвращенная как 1 m числовым вектором или n- m числовая матрица. Каждая строка Y случайная варьируемая величина, сгенерированная от m - размерное Гауссово распределение смеси gm.

Индекс компонента, возвращенный как положительное целое число или n- 1 вектор индекса, где compIdx(i) указывает, что компонент смеси раньше генерировал ith случайная варьируемая величина Y(i,:).

Представленный в R2007b