生成具有相同std和均值的新列表

| 如何从均值和标准差与原始列表相同的随机数生成新列表? 我尝试过newlist = mean(list)+ std(list)* randn(100,1);我在Matlab网站上找到了它,但是它生成的std和均值与原始值略有不同,因为新均值总是更大。     
已邀请:
诀窍是生成均值为0和std dev 1的随机数。我们可以通过生成任何旧的随机数,然后固定均值和标准差来实现。
% generate your random numbers
r = randn(100, 1);

% scale the variance
r2 = r / std(r);

% shift the mean
r3 = r2 - mean(r2);

%check your answer
abs(mean(r3)) < sqrt(eps)
abs(std(r3) - 1) < sqrt(eps)
现在,ѭ1应该会给您您所需要的。     
很抱歉回答一个问题,但我不得不问... 为什么需要确保随机数矢量的均值与原始矢量完全相同?同样,为什么标准偏差需要精确相同? 如果我进行了蒙特卡洛模拟或类似的模拟,则试图发现可能发生的情况。 如果您调整随机数,以使平均值恰好为X,标准偏差恰好为Y,那么您将减少模拟包含极端事件的机会。反过来,这意味着发生问题的可能性较小。 这些类型的转换作为一种学术练习是可以的,但是,对于在现实世界中采用这种类型的方法,我会感到非常担忧。 您正在击败模拟的全部目的 如果您的方法过于敏感以至于它们不起作用,则是平均值和标准偏差相差很小的一点,这本身应该告诉您一些信息     

要回复问题请先登录注册