常見一元分布随機數
(1) MATLAB統計工具箱中函數名以rnd三個字符串結尾的函數用來生成常見分布的随機數。如下表
函數名 說明
binornd 二項分布随機數
chi2rnd 卡方分布随機數
exprnd 指數分布随機數
frnd F分布随機數
lognrnd 對數分布随機數
mnrnd 多項分布随機數
normrnd 正态分布随機數
..................
例:
調用normrnd函數生成1000x3的正态分布随機函數,其中均值u=75,标準差為8,并畫出各列頻數直方圖
%調用normrnd函數生成1000行3列的随機數矩陣x,其元素服從均值為75,标準差為8的正态分布
>> x=normrnd(75,8,1000,3);%調用-rnd函數,需要傳遞給它分布函數的參數,和生成矩陣的維數
>> figure;
>> hist(x); %繪制矩陣x每列的頻數直方圖
>> xlabel('正态分布随機數(\mu=75,\sigma=8)');
>> ylabel('頻數');
(2)random函數
random函數是一種通用的求各分布的随機數的函數,格式如下:
y=random(‘name’,A1,A2,A3,m,n)
name指定是那種分布函數,取值為上表中 MATLAB中常見分布函數名的簡稱
A1,A2,A3是分布函數的參數
m,n用來指定生成随機數的行和列
例:用normrnd和random函數分布生成1000x1的正态分布随機函數,其中均值u=75,标準差為8,并畫出頻數直方圖
x=normrnd(75,8,1000,1); %normrnd函數生成均值u=75,标準差為8的正态随機數
xx=random('norm',75,8,1000,1);%random函數生成均值u=75,标準差為8的正态随機數
figure;
hist(x),title('normrnd頻數分布直方圖');
>> figure;
>> hist(xx),title('random頻數分布直方圖');
例:調用random函生成1000x1的二項分布随機數向量,然後做出頻率直方圖。二項分布的參數為n=10,p=0.3
注意:如何計算頻率直返圖,首先調用ecdf函數就算出經驗累積概率分布函數值,然後調用ecdfhist函數繪制頻率直方圖,其參數是ecdf函數的返回值
%調用random函數生成1000行1列的随機數向量x,其元素服從二項式分布B(10,0.3)
x=random('bino',10,0.3,1000,1);
[fp,xp]=ecdf(x);
ecdfhist(fp,xp,20);P表示柱狀圖的個數,默認是10
>> xlabel('二項分布(n=10,p=0.3)随機數');
>> ylabel('f(x)');
明天繼續發布MATLAB如何生成任意一元分布的随機數。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!