0

我有有限的数据 RV,我可以找到平均 mu 和标准偏差 sigma。现在我想生成更多保持相同 mu 和 sigma 的数据点。我将如何在 MATLAB 中执行此操作?我做了以下操作,但是当我绘制生成数据(mu_2)的平均值时,它不匹配 mu...

N = 15
R = mean(RV) + std(RV)*randn(N, 1);
mu = mean(RV)*ones(N,1);
mu_2 = mean(R)*ones(N,1);
4

3 回答 3

3

我认为您应该使用normrnd(mu,sigma)函数转到文档以获取更多详细信息

此致

于 2013-01-19T00:43:15.243 回答
1

这看起来是正确的。对于如此小的样本量,您不太可能得到很好的匹配。尝试更大的值N

如果您想将数据集强制为特定的均值和标准差,那么您可以生成一组样本,然后测量它们的均值和标准差,然后通过缩放和标量加法进行调整。

例如:

R = randn(N,1);

% Measure
mu_tmp = mean(R);
std_tmp = std(R);

% Normalise and denormalise
R = (R - mu_tmp) / std_tmp;
R = (R * std_desired) + mu_desired;
于 2013-01-19T00:42:20.750 回答
0

您还可以使用 Netlab 库生成高斯混合(它是免费的!)

mix=gmm(8,3,'spherical');
[Data, Label]=gmmsamp(mix,1000);

以上生成了超过 1000 个观测值的 8 个维度和三个中心(球形)的数据集。

于 2014-03-07T13:06:25.080 回答