您好我想用隨機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