matlab中的rand,randn,和randi函数1. rand(m,n) ⽣成m⾏n列均匀分布在(0~1)之间的伪随机数。
rand(1,5)
ans =
0.67970.65510.16260.11900.4984
2. randn (m,n) ⽣成m⾏n列标准正态分布的伪随机数(均值为0,⽅差为1)
randn(1,5)
ans =
1.5326  -0.76970.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 =
matlab生成随机数
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.1668
b =
-1.9654  -1.2701    1.1752    2.0292  -0.2752
a_t =
0.8003  -1.5094    0.8759  -0.2428    0.1668
b_t =
-1.9654  -1.2701    1.1752    2.0292  -0.2752
也可以使⽤下⾯这种⽅法来循环⽣成同样的随机数
rng(seed)中的seed可以⾃⾏选取不同的数值,以此来控制不同的随机数状态
for i = 1:5
rng(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
可以看到⽣成的随机数都是⼀样的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。