1. rand(m,n) 生成m行n列均匀分布在(0~1)之间的伪随机数。
rand(1,5)ans =0.6797 0.6551 0.1626 0.1190 0.4984
2. randn (m,n) 生成m行n列标准正态分布的伪随机数(均值为0,方差为1)
randn(1,5)ans =1.5326 -0.7697 0.3714 -0.2256 1.1174
3. randi 生成均匀分布的伪随机整数
Pseudorandom integers from a uniform discrete distribution.
randi(iMax)在 [1,iMax] 生成均匀分布的伪随机整数
randi(5)ans =3
randi(iMax,m,n)在 [1,iMax] 上生成 m X n 型随机矩阵
randi(5,1,5)ans =4 5 5 3 1
randi([iMin,iMax],m,n) ,在 [iMin,iMax] 生成 m X n 型随机矩阵
randi([2,5],1,5)ans =2 3 5 3 5
4. 重复生成前一次的随机数
我们可以使用rng来保存上一次生成随机数的状态,也就是常说的随机数种子seed
s = rng; % 保存a的随机数seed
a = randn(1,5)
k = rng; % 保存b的随机数seed
b = randn(1,5)
rng(s) % 调用a的随机数seed
a_t = randn(1,5)
rng(k) % 调用b的随机数seed
b_t = randn(1,5)
结果如下:
a =0.8003 -1.5094 0.8759 -0.2428 0.1668b =-1.9654 -1.2701 1.1752 2.0292 -0.2752a_t =0.8003 -1.5094 0.8759 -0.2428 0.1668b_t =-1.9654 -1.2701 1.1752 2.0292 -0.2752
也可以使用下面这种方法来循环生成同样的随机数
rng(seed)中的seed可以自行选取不同的数值,以此来控制不同的随机数状态
for i = 1:5rng(1)x = randn(1,5)
end
结果如下:
x =-0.6490 1.1812 -0.7585 -1.1096 -0.8456
x =-0.6490 1.1812 -0.7585 -1.1096 -0.8456
x =-0.6490 1.1812 -0.7585 -1.1096 -0.8456
x =-0.6490 1.1812 -0.7585 -1.1096 -0.8456
x =-0.6490 1.1812 -0.7585 -1.1096 -0.8456
可以看到生成的随机数都是一样的。