我的数据RV有限,我可以找到平均μ和标准差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);
答案 0 :(得分:3)
我认为你应该使用 normrnd(mu,sigma)函数 转到documentation获取更多详细信息
祝你好运
答案 1 :(得分:1)
看起来很正确。对于如此小的样本量,你不太可能获得非常好的匹配。尝试多更大的N
值。
如果你想强制你的数据集到特定的平均值和stddev,那么你可以生成一组样本,然后测量它们的均值和stddev,然后通过缩放和标量加法进行调整
例如:
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;
答案 2 :(得分:0)
你也可以使用Netlab库生成高斯混合物(它是免费的!)
mix=gmm(8,3,'spherical');
[Data, Label]=gmmsamp(mix,1000);
以上生成的数据集包含8个维度和3个中心(球形),超过1000个观测值。