MATLAB生成服從各種分佈的隨機數函式

yy_yanyan發表於2019-03-28

原文:https://blog.csdn.net/explorer9607/article/details/83660585

MATLAB隨機數生成函式有兩種形式,一種是形如***rnd,比如(unifrnd,binornd,exprnd)等,一種就是用一個統一的函式random(‘name’,...),利用不同的 name生成不同的分佈的隨機數

在matlab中,有兩個工具箱,一個叫做Probability distribution function tool 用來畫各種分佈的概率密度圖和分佈函式圖

裡一個叫做Random number generation tool 用來生成各種分佈的隨機數。

下面列舉一些典型的常規分佈的隨機數生成函式,這些函式都可以生成服從某種分佈的一些隨機數,其通用的引數形式為:

Y = ***rnd(A,B,C,[m,n,...]),其中A,B,C為對應的分佈所需要給定的引數,[m,n..]表示生成隨機數的維度和數目,舉個例子

R = normrnd(0,1,[2,5])表示生成一個2*5的服從標準N(0,1)正態分佈的隨機數的矩陣

% betarnd 貝塔分佈的隨機數生成器 
% binornd 二項分佈的隨機數生成器 
% chi2rnd 卡方分佈的隨機數生成器 
% exprnd 指數分佈的隨機數生成器 
% frnd      f分佈的隨機數生成器 
% gamrnd 伽瑪分佈的隨機數生成器 
% geornd 幾何分佈的隨機數生成器 
% hygernd 超幾何分佈的隨機數生成器 
% lognrnd 對數正態分佈的隨機數生成器 
% nbinrnd 負二項分佈的隨機數生成器 
% ncfrnd 非中心f分佈的隨機數生成器 
% nctrnd 非中心t分佈的隨機數生成器 
% ncx2rnd 非中心卡方分佈的隨機數生成器 
% normrnd 正態(高斯)分佈的隨機數生成器,normrnd(a,b,c,d):產生均值為a、方差為b大小為c*d的隨機矩陣 
% poissrnd 泊松分佈的隨機數生成器 
% rand:產生均值為0.5、幅度在0~1之間的偽隨機數,rand(n):生成0到1之間的n階隨機數方陣,
% randn:產生均值為0、方差為1的高斯白噪聲,使用方式同rand 
 注:rand是0-1的均勻分佈,randn是均值為0方差為1的正態分佈 
% randperm(n):產生1到n的均勻分佈隨機序列 
% raylrnd 瑞利分佈的隨機數生成器 
% trnd     t分佈的隨機數生成器 
% unidrnd 離散均勻分佈的隨機數生成器 
% unifrnd 連續均勻分佈的隨機數生成器 
% weibrnd 威布林分佈的隨機數生成器

注意:以上都是生成一元分佈函式的方法,對於多元的,我只在MATALB上找到了多元正態和T分佈的函式,

多元正態:r = mvnrnd(MU,SIGMA,cases),其中MU為均值向量,sigma為協方差矩陣,cases就是要生成多少個,

多元T分佈:R = mvtrnd(C,df,cases) C為相關係數矩陣,df為自由度
 

相關文章