【问题标题】:Generate random data given mean and standard deviation in MATLAB?在MATLAB中生成给定均值和标准差的随机数据?
【发布时间】:2013-01-02 19:24:23
【问题描述】:
我有有限的数据 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);
【问题讨论】:
标签:
matlab
random
statistics
mean
【解决方案2】:
这看起来是正确的。对于如此小的样本量,您不太可能得到很好的匹配。尝试 更多 更大的 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;
【解决方案3】:
您还可以使用 Netlab 库生成高斯混合(免费!)
mix=gmm(8,3,'spherical');
[Data, Label]=gmmsamp(mix,1000);
上面生成了一个包含 8 个维度和三个中心(球形)的数据集,超过 1000 个观测值。