您好我想用随机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]))
?
感谢
您好我想用随机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]))
?
感谢
也许你想生成正常分布的随机数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
而是你为什么不只是生成随机数,并改变基于数字的产生范围,其中平均是在VS您要平均要?
你想要什么其他属性?你可以这样做:
nums = (rand(1000,1)+rand())/2
这将移动你的数组一个随机数,也移动的意思。这将保持相同的标准偏差。像这样的东西会改变两个:
nums = (rand(1000, 1)*rand()+rand())/2
嗨,我试过nums = mean(rand(1000,1)+ rand())。我多次执行了计算,有时候我得到的平均值大于1。如果我在0和1之间产生随机数,那么不应该将平均值设置在0和1之间。 – 2009-12-12 05:44:47
是的,但是你将两个随机数加在一起,所以你可以得到一些高于1的值。如果你想约束你的结果介于0和1之间,请尝试新的编辑 – 2009-12-12 07:10:49
您必须解释你的意思是什么分布。当然,你需要随机的,但即使是随机的也有秩序。请解释。如果你想得到一个正态分布的均值,你可以缩放这些变量[z =(x - mu)/ sigma]并随机改变mu。如果你需要平均值的另一个分布,则存在类似的公式。
再次请进一步解释。
,如果你想将样品恰好有一个给定的平均mu
,那么我会迫使样本均值是该值:
x = some_random_variable_generator(arguments);
x = x + (mu - mean(x));
,那么你就大功告成了。
嗨,感谢您的快速响应。我如何确定平均值在哪里?我想要的意思是随机的可以是0.9或可以是0.1不是以0.5为中心...我认为它与分布有关但是我不知道 – 2009-12-12 05:17:39
哦,我以为你想要产生随机数字, 。 – Sneakyness 2009-12-12 06:54:40