常见一元分布随机数

(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频数分布直方图');

matlab生成均值固定的随机数(MATLAB生成常见一元分布随机数)(1)

matlab生成均值固定的随机数(MATLAB生成常见一元分布随机数)(2)

例:调用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生成均值固定的随机数(MATLAB生成常见一元分布随机数)(3)

明天继续发布MATLAB如何生成任意一元分布的随机数。

,