random

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

Описание

пример

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

пример

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

пример

[Y,compIdx] = random(___) также возвращает n-by-1 вектор индекса compIdx для любого из входных параметров в предыдущих синтаксисах. compIdx(i) указывает компонент смеси, используемый для генерации iПервая переменная случайных 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

Сгенерируйте 1000 случайных вариаций.

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

compIdx(i) указывает компонент смеси, используемый для генерации iПервая переменная случайных Y(i,:). Отсчитайте количество случайных изменений, сгенерированных Component 1.

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

random генерирует около половины случайных изменений, используя Component 1 потому что gm имеет одинаковые пропорции смешивания.

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

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

Figure contains an axes. The axes 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

The 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-by - m числовая матрица. Каждая строка Y является случайным вариантом, сгенерированным из m -мерного Гауссова распределения смеси gm.

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

Введенный в R2007b
Для просмотра документации необходимо авторизоваться на сайте