MATLAB生成随机数

时间:2009-12-12 05:08:04

标签: matlab random numbers

您好我正在尝试使用随机MEAN值在MATLAB中生成随机数。

例如,如果我使用

e = mean(rand(1000,1))

e的答案始终接近0.5。 我想要的是e(均值)的值是随机的, 所以e可以是0.1,0.2,0.3等......

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

由于

5 个答案:

答案 0 :(得分:4)

必须解释您想要的均值分布。当然,你想要它是随机的,但即使是随机也有秩序。请解释一下。

如果你想要一个正态分布均值,你可以缩放变量[z =(x-mu)/ sigma]并随机改变mu。如果您需要另一个均值分布,则存在类似的公式。

再次,请进一步解释。

答案 1 :(得分:3)

也许您希望使用randn生成正常分布式随机数X~N(0,1)。然后,您可以将平均值和标准差更改为随机。举个例子:

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

答案 2 :(得分:0)

相反,为什么不直接生成随机数,并根据平均值所在的位置更改生成的数字范围?

答案 3 :(得分:0)

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

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

这会使你的数组​​移动一个随机数,也会改变平均数。这将保持相同的标准偏差。这样的事情会改变两者:

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

答案 4 :(得分:0)

如果您希望样本具有完全给定的均值mu,那么我会强制样本均值为该值:

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

然后你就完成了。