如何生成具有指定平均值和SD的正隨機數列表? 我知道如何用R中的rnorm做它,但它不是正向的,因爲它從正態分佈採樣,如果我是對的。生成固定平均值和SD的正隨機數
我的首選語言是matlab,但R中的腳本也是好的。 謝謝。
如何生成具有指定平均值和SD的正隨機數列表? 我知道如何用R中的rnorm做它,但它不是正向的,因爲它從正態分佈採樣,如果我是對的。生成固定平均值和SD的正隨機數
我的首選語言是matlab,但R中的腳本也是好的。 謝謝。
這真的取決於底層分佈。
使用R = normrnd(mu,sigma)
您可以生成具有指定平均值和標準偏差的正態分佈隨機數。
R = lognrnd(mu,sigma)
生成對數正態分佈隨機數。
您還可以查看this,您可以在其中指定分佈。
只要確保您檢查它是否確實是正面的,例如,
mu = 10;
sigma = 1;
R = normrnd(mu,sigma,1,500);
%R(R<=0) = resample
非常感謝,它做我想要的也有負數,但它不像R中的函數那麼頻繁。還有一個人想要使用它,意思和SD不是確切的。 – user2032717
我不是舒爾,但莫比這個功能可以幫助您:
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
我認爲這實際上取決於你是什麼意思,SD和分配之後。你可以做rpois,runif,r ...不管。 – ira
那麼,我想生成不同的sd = 0到sd = 500的數字列表,這樣我就可以檢查不同數據列表上的方程行爲。 – user2032717
sd = 0只是一個常數。對於sd = 500,您必須選擇其中一個分配。 rpois(n,lambda = 500)會給你n個泊松分佈的數字,平均值爲500,sd = 500。爲了均勻分佈,你可以做一個統一的長度爲1732.051的標準偏差爲500. – ira