您好我正在尝试使用随机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]) )
?
由于
答案 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));
然后你就完成了。