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小时内删除。
发表评论