我有有限的数据 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);
我有有限的数据 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);
我认为您应该使用normrnd(mu,sigma)函数转到文档以获取更多详细信息
此致
这看起来是正确的。对于如此小的样本量,您不太可能得到很好的匹配。尝试更大的值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;
您还可以使用 Netlab 库生成高斯混合(它是免费的!)
mix=gmm(8,3,'spherical');
[Data, Label]=gmmsamp(mix,1000);
以上生成了超过 1000 个观测值的 8 个维度和三个中心(球形)的数据集。