-
matlab
全部的随机数函数
(一)
Matlab
内部函数
a.
基本随机数
Matlab
中有两个最基本生成随机数的函数。
1
.
rand()
生成
(
0,1
)区间上均匀分布的随机变量。基本语法:
rand([M,N,P ...])
生成排列成
M*N*P...
多维向
量的随机数。
如果只写
M
,
则生成
M*M
矩阵;
如果
参数为
[M,N]
可以省略掉方括号。一些例子:
rand(5,1) %
生成
5
个随机数排列的列向量,一般用这种格式
rand(5) %
生成
5
行
5
列的随机数矩阵
rand([5,4]) %
生成一个
5
行
4
列的随机数矩阵
生成的随机数大致的分布。
x=rand(100000,1);
hist(x,30);
由此可以看到生成的随机数很符合均
匀分布。
(
视频教程会略提及
hist
()
函数的作用
)
2
.
randn()
生成服从
标准正态分布(均值为
0
,方差为
1<
/p>
)的随机数。基本语法和
rand()
类
似。
randn([M,N,P ...])
生成排列成
M*N*P...
多维向
量的随机数。
如果只写
M
,
则生成
M*M
矩阵;
如果
参数为
[M,N]
可以省略掉方括号。一些例子:
randn(5,1) %
生成
< br>5
个随机数排列的列向量,一般用这种格式
randn(5) %
生成
5
行
5
列的随机数矩阵
randn([5,4]) %
生成一个
5
行
4
列的随机数矩阵
生成的随机数大致的分布。
x=randn(100000,1);
hist(x,50);
由图可以看到生成的随机数很符合标准正态分布。
b.
连续型分布随机数
如果你安装了统计工具箱(
Statistic Toolbo
x)
,除了这两种基本分布外,还可以用
Matlab
内
部函数生成符合下面这些分布的随机数。
<
/p>
3
.
unifrnd()
和
rand()
类似,这个
函数生成某个区间内均匀分布的随机数。基本语法
unifrnd(a,b,[M,N,P,...])
生成的
随机数区间在
(a,b)
内,
排列成<
/p>
M*N*P...
多维向量。
如果只写
M
,
则生成
M
*M
矩阵;
如果参数为
[M,N]
p>
可以省略掉方括号。一些例子:
unifrnd(-2,3,5,1) %
生成
5
个随机数排列的列向量,一般用这种格式
unifrnd(-2,3,5) %
生成
5
行
5
列的随机数矩阵
unifrnd(-2,3,[5,4]) %
生成一个
5
行
4
列的随机数矩阵
%
注:上述语句生
成的随机数都在
(-2,3)
区间内
.
生成的随机数大致的分布。
x=unifrnd(-2,3,100000,1);
hist(x,50);
由图可以看到生成的随机数很符合区
间
(-2,3)
上面的均匀分布。
<
/p>
4
.
normrnd()
和
randn()
类似,此
函数生成指定均值、标准差的正态分布的随机数。基本语法
normrnd(mu,sigma,[M,N,P,...])
生成的随机数服从均值为
mu
,标准差为
< br>sigma
(注意标准差是正数)正态分布,这些随机
数
排列成
M*N*P...
多维向量。如果只写
M
,则生成
M*M
矩阵;如果
参数为
[M,N]
可以省
略掉方括号。
一些例子:
normrnd(2,3,5,1) %
生成
5
个随机数排列的列向量,一般用这种格式
normrnd(2,3,5) %
生成
5
行
5
列
的随机数矩阵
normrnd(2,3,[5,4]) %<
/p>
生成一个
5
行
4
列的随机数矩阵
%
< br>注:上述语句生成的随机数所服从的正态分布都是均值为
2
,标准差为
3.
生成的随机数大致的分布。
x=normrnd(2,3,100000,1);
hist(x,50);
<
/p>
5
.
chi2rnd()
此函数生成服从卡方(
Chi-square)
p>
分布的随机数。卡方分布只有一个参数:自由度
v
< br>。基本
语法
chi2rnd(v,[M,N,P,...])
生成的随机
数服从自由度为
v
的卡方分布,这些随机数排列成
M*N*P...
多维向量。如果只
写
M
,则生成
M*M
矩阵;
如果参数为
[M,N]
可以省略掉方括号。一些例子:
chi2rnd(5,5,1) %
生成
p>
5
个随机数排列的列向量,一般用这种格式
chi2rnd(5,5) %
生成
5
行
5
列的随机数矩阵
< br>
chi2rnd(5,[5,4]) %
生成一个
p>
5
行
4
列的随机数
矩阵
%
注:上述语句生成的随机数所
服从的卡方分布的自由度都是
5
生成的随机数大致的分布。
x=chi2rnd(5,100000,1);
hist(x,50);
6
.
frnd()
此函数生成服从
F
分布的随机数。
F
分布有
2
个参数:
v1,
v2
。基本语法
frnd(v1,v2,[M,N,P,...])
生成的随
机数服从参数为
(v1,v2)
的卡方分布,这些随机数排列成
M*N*P...
多维向量。如果
只
写
M
,则生成
M*M
< br>矩阵;如果参数为
[M,N]
可以省略掉方括号。一些例
子:
frnd(3,5,5,1) %
生成
5
个随机数排列的列向量,一般用这种格式
frnd(3,5,5) %
生成
5
行
5
列的随机数矩阵
frnd(3,5,[5,4]) %
生成
一个
5
行
4
列
的随机数矩阵
%
注:上述语句生成的
随机数所服从的参数为
(v1=3,v2=5)
的
F
分布
生成的随机数大致的分布。
x=frnd(3,5,100000,1);
hist(x,50);
从结果可以看出来,
F
分布集中在
x
正半轴的左侧,但是它在极端值处也很
可能有一些取
值。
7
.
trnd()
此函数生成服从
t(Student's t Distrib
ution
,这里
Student
不是
学生的意思,而是
Cosset.W.S.
的笔名
)
分布的随机数。
t
分布有
1
个参数:自由度
v
< br>。基本语法
trnd(v,[M,N,P,...])
生成的随机数服从参数为
v
的
t
分布,
这些随机数排列成
M*N*P...
多维向量。
如果只写
< br>M
,
则生成
M*M
矩阵;如果参数为
[M,N]
可以省略掉方括号。一
些例子:
trnd(7,5,1) %
生成
5
个随机数排列的列向量,一般用这种格式
trnd(7,5) %
生成
5
行
5
列的随机数矩阵
trnd(7,[5,4]) %
生成一个
p>
5
行
4
列的随机数
矩阵
%
注:上述语句生成的随机数所
服从的参数为
(v=7)
的
t
分布
生成的随机数大致的分布。
x=trnd(7,100000,1);
hist(x,50);
可以发现
t
分布比标准正太分布要
“
瘦
”
,不过随着自由度
v
的
增大,
t
分布会逐渐变胖,当
自由度为
正无穷时,它就变成标准正态分布了。
接下来的分布相对没有
这么常用,
同时这些函数的语法和前面函数语法相同,
所以写得
就简
略一些
——
在视频中也不会讲述,
你只需按照前面那几个分布的语法套用即可,
应该不会有
任何困难
——
时间足够的话这是一个不错的练
习机会。
8
.
betarnd()
此函数生成服从
Beta
分布的随机数。
Beta
分
布有两个参数分别是
A
和
B
。下图是
A=2,B=5
的
beta
分布的
PDF
图形。
p>
生成
bet
a
分布随机数的语法是: