2009-12-12 202 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)); 

,那麼你就大功告成了。