2016-11-09 119 views
-1

如何生成具有指定平均值和SD的正隨機數列表? 我知道如何用R中的rnorm做它,但它不是正向的,因爲它從正態分佈採樣,如果我是對的。生成固定平均值和SD的正隨機數

我的首選語言是matlab,但R中的腳本也是好的。 謝謝。

+1

我認爲這實際上取決於你是什麼意思,SD和分配之後。你可以做rpois,runif,r ...不管。 – ira

+0

那麼,我想生成不同的sd = 0到sd = 500的數字列表,這樣我就可以檢查不同數據列表上的方程行爲。 – user2032717

+0

sd = 0只是一個常數。對於sd = 500,您必須選擇其中一個分配。 rpois(n,lambda = 500)會給你n個泊松分佈的數字,平均值爲500,sd = 500。爲了均勻分佈,你可以做一個統一的長度爲1732.051的標準偏差爲500. – ira

回答

0

這真的取決於底層分佈。

使用R = normrnd(mu,sigma)您可以生成具有指定平均值和標準偏差的正態分佈隨機數。

R = lognrnd(mu,sigma)生成對數正態分佈隨機數。

您還可以查看this,您可以在其中指定分佈。

只要確保您檢查它是否確實是正面的,例如,

mu = 10; 
sigma = 1; 
R = normrnd(mu,sigma,1,500); 
    %R(R<=0) = resample 
+0

非常感謝,它做我想要的也有負數,但它不像R中的函數那麼頻繁。還有一個人想要使用它,意思和SD不是確切的。 – user2032717

0

我不是舒爾,但莫比這個功能可以幫助您:

function Y=rand_std(mean,SD) 
    while 1==1 
     X=rand*2*mean; 
     Y=rand; 
     if Y<1/(SD*sqrt(2*pi))*exp(-(X-mean)^2/(2*SD^2)) 
      return; 
     end 
    end 
end 
相關問題