matlab产生随机数或随机矩阵
Matlab中随机数生成器主要有:
betarnd 贝塔分布的随机数生成器
binornd 二项分布的随机数生成器
chi2rnd 卡方分布的随机数生成器
exprnd 指数分布的随机数生成器
frnd f分布的随机数生成器
gamrnd 伽玛分布的随机数生成器
geornd 几何分布的随机数生成器
hygernd 超几何分布的随机数生成器
lognrnd 对数正态分布的随机数生成器
nbinrnd 负二项分布的随机数生成器
ncfrnd 非中心f分布的随机数生成器
nctrnd 非中心t分布的随机数生成器
ncx2rnd 非中心卡方分布的随机数生成器
normrnd 正态(高斯)分布的随机数生成器,normrnd(a,b,c,d):产生均值为a、方差为b大小为cXd的随机矩阵
poissrnd 泊松分布的随机数生成器
rand:产生均值为0.5、幅度在0~1之间的伪随机数,rand(n):生成0到1之间的n阶随机数方阵,rand(m,n):生成0到1之间的m×n的随机数矩阵
randn:产生均值为0、方差为1的高斯白噪声,使用方式同rand
注:rand是0-1的均匀分布,randn是均值为0方差为1的正态分布
randperm(n):产生1到n的均匀分布随机序列
raylrnd 瑞利分布的随机数生成器
trnd 学生氏t分布的随机数生成器
unidrnd 离散均匀分布的随机数生成器
unifrnd 连续均匀分布的随机数生成器
weibrnd 威布尔分布的随机数生成器
计算机不可能产生真正的随机数,只是伪随机数。matlab中rand和randn是产生随机数的命令,x=rand(1,N) 产生(0,1)区间均匀分布的长度为N的随机信号,x=randn(1,N)产生长度为N且具有零均值和单位方差的正态分布的随机信号。
以下介绍利用Matlab产生均值为0,方差为1的符合正态分布的高斯随机数。
我们利用的函数为normrnd(a,b,c,d):产生均值为a、标准为b大小为cXd的随机矩阵,它有如下三种参数形式:
R=normrnd(μ,σ)
R=normrnd(μ,σ):生成服从正态分布(μ参数代表均值,σ参数代表标准差)的随机数。输入的向量或矩阵μ和σ必须形式相同,输出R也和它们形式相同。标量输入将被扩展成和其它输入具有相同维数的矩阵。
R=normrnd(μ,σ,m)
R=norrmrnd(μ,σ,m):生成服从正态分布(μ参数代表均值,σ参数代表标准差)的随机数矩阵,矩阵的形式由m定义。m是一个1×2向量,其中的两个元素分别代表返回值R中行与列的维数。
R=normrnd(μ,σ,m,n)
R=normrnd(μ,σ,m,n): 生成m×n形式的正态分布的随机数矩阵。其中μ为均值,σ为标准方差,m、n为矩阵大小;
>> R = normrnd(0,1,4,4) %产生4×4的标准正态分布矩阵R =0.5377 0.3188 3.5784 0.72541.8339 -1.3077 2.7694 -0.0631 -2.2588 -0.4336 -1.3499 0.71470.8622 0.3426 3.0349 -0.2050>> var(R) %默认方差公式ans =3.0868 0.6085 5.1253 0.2465>> var(R,0) %默认方差公式(N-1)ans =3.0868 0.6085 5.1253 0.2465>> var(R,1) %方差公式(N)ans =2.3151 0.4564 3.8440 0.1849>> var(R,0,1) %列操作,第二参数为方差方式,第三参数为行、列标记ans =3.0868 0.6085 5.1253 0.2465>> var(R,0,2) %行操作,第二参数为方差方式,第三参数为行、列标记ans =2.35493.37821.61842.0146>> var(R') %check the ansans =2.3549 3.3782 1.6184 2.0146>> var(R(:)) %矩阵所有元素的方差ans =2.6020
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
参考:http://www.ilovematlab.cn/thread-172789-1-1.html
http://blog.sina.com.cn/s/blog_4c78d3fb01012c6f.html