MATLAB生成常见一元分布随机数

交互设计

  常见一元分布随机数

  (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(频数);

  >> leg(第一列,第二列,第三列);

  (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);%50表示柱状图的个数,默认是10

  >> xlabel(二项分布(n=10,p=0.3)随机数);

  >> ylabel(f(x));

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

标签: 交互设计