如何在matlab中进行正态分布

时间:2011-12-11 22:37:56

标签: matlab normal-distribution

我正在进行模式识别项目,在那里我想用给定参数(均值和协方差矩阵)对2维正态分布进行采样。例如,如果我想从正态分布中获得100个样本,我使用mvnrnd(mu,sigma,100),其中假设mu和sigma可用。但是mvnrnd会返回100个唯一的样本,但我希望样本中包含重复的值。 (我的意思是如何获得100个样本但不一定具有唯一值)我该怎么办?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

查看normrnd()功能。它生成正态分布的随机数。

要生成具有均值1-by-100和标准差mu的正态分布随机数的sigma向量,请使用以下语句。

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