как выбрать нормальное распределение в Matlab - PullRequest
0 голосов
/ 12 декабря 2011

Я работаю над проектом по распознаванию образов, и там я хочу отобрать 2-мерное нормальное распределение с заданными параметрами (среднее значение и ковариационная матрица).Например, если я хочу получить 100 выборок из нормального распределения, я использую mvnrnd(mu,sigma,100), где предполагается, что mu и sigma доступны.Но mvnrnd возвращает 100 уникальных сэмплов, но я хочу иметь сэмплы даже с дублированными значениями.(Я имею в виду, как получить 100 образцов, но не обязательно с уникальными значениями) Что мне делать?

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

В документации mvnrnd нигде не сказано, что образцы гарантированно уникальны, хотя, если ваша проблема поставлена ​​разумным образом, это не должно быть проблемой в любом случае.

В любом случае, если вас не устраивает mvnrnd, это должно быть эквивалентно:

% draw 100 samples from a 2D bivariate normal distribution with unit variance and zero mean:
R = randn(2, 100);
% scale by the square root (see http://en.wikipedia.org/wiki/Cholesky_decomposition) of sigma
R1 = chol(sigma)*R;
% offset by the mean
R2 = bsxfun(@plus, R1, mu);
0 голосов
/ 12 декабря 2011

Проверьте функцию normrnd().Он генерирует нормально распределенные случайные числа.

Чтобы сгенерировать 1-by-100 вектор нормально распределенных случайных чисел со средним значением mu и стандартным отклонением sigma, используйте следующую инструкцию.

X = normrnd(mu,sigma,[1 100]);
...