2009-12-12 151 views
1

您好我想用随机MEAN值在MATLAB中生成随机数。MATLAB生成随机数

例如,如果我用

e = mean(rand(1000,1)) 

的答案e总是会接近0.5。 我想是的e值(平均)是随机的, 使e可以为0.1,0.2,0.3,等...

它是正确的,我使用 e = mean(unifrnd(0,1,[1000,1]))

感谢

回答

3

也许你想生成正常分布的随机数X~N(0,1)randn。然后你可以改变平均值和标准偏差是随机的。举个例子:

N = 1000; 
mu = rand*10 - 5;   %# mean in the range of [-5.0 5.0] 
sigma = randi(5);   %# std in range of 1:5 
X = randn(N, 1)*sigma + mu; %# normally distributed with mean=mu and std=sigma 
0

而是你为什么不只是生成随机数,并改变基于数字的产生范围,其中平均是在VS您要平均要?

+0

嗨,感谢您的快速响应。我如何确定平均值在哪里?我想要的意思是随机的可以是0.9或可以是0.1不是以0.5为中心...我认为它与分布有关但是我不知道 – 2009-12-12 05:17:39

+0

哦,我以为你想要产生随机数字, 。 – Sneakyness 2009-12-12 06:54:40

0

你想要什么其他属性?你可以这样做:

nums = (rand(1000,1)+rand())/2 

这将移动你的数组一个随机数,也移动的意思。这将保持相同的标准偏差。像这样的东西会改变两个:

nums = (rand(1000, 1)*rand()+rand())/2 
+0

嗨,我试过nums = mean(rand(1000,1)+ rand())。我多次执行了计算,有时候我得到的平均值大于1。如果我在0和1之间产生随机数,那么不应该将平均值设置在0和1之间。 – 2009-12-12 05:44:47

+0

是的,但是你将两个随机数加在一起,所以你可以得到一些高于1的值。如果你想约束你的结果介于0和1之间,请尝试新的编辑 – 2009-12-12 07:10:49

4

必须解释你的意思是什么分布。当然,你需要随机的,但即使是随机的也有秩序。请解释。如果你想得到一个正态分布的均值,你可以缩放这些变量[z =(x - mu)/ sigma]并随机改变mu。如果你需要平均值的另一个分布,则存在类似的公式。

再次请进一步解释。

0

,如果你想将样品恰好有一个给定的平均mu,那么我会迫使样本均值是该值:

x = some_random_variable_generator(arguments); 
x = x + (mu - mean(x)); 

,那么你就大功告成了。