matlab中的rng函数
⼀、matlab中的随机函数有:rand、randn
1、rand功能:⽣成0-1之间的伪随机数
rand(2)%⽣成0-1之间的⽅阵
ans =
0.2785 0.9575
0.5469 0.9649
rand(1,2)%⽣成1⾏2列的矩阵
ans =
0.1576 0.9706
rand(1,2,'double')%⽣成1⾏2列的类型为double的随机数
ans =
0.9572 0.4854
2、randn功能:⽣成标准正态分布的伪随机数(均值为0,⽅差为1)
使⽤的例⼦和上⾯⼀样
⼆、rng函数的功能:控制随机函数的⽣成
2.1⽤法⼀:rng(seed)
rng(seed) 使⽤⾮负整数 seed 为随机数⽣成器提供种⼦,以使、和⽣成可预测的数字序列。
(seed⽤来控制rand和randn函数⽣成随机数,例如rand('seed',0)每次⽣成的随机数都是⼀样的)
将当前⽣成器设置保存在 s 中:
s = rng;
调⽤ rand 以⽣成随机值向量:
x = rand(1,5)
x =
0.8147 0.9058 0.1270 0.9134 0.6324
通过调⽤ rng 还原原始⽣成器设置。⽣成⼀组新的随机值并验证 x 和 y 是否相等:
rng(s);
y = rand(1,5)
y =
0.8147 0.9058 0.1270 0.9134 0.6324
matlab生成随机数2.2⽤法⼆:rng('shuffle')
根据当前时间为随机数⽣成器提供种⼦。这样,rand、randi 和 randn 会在您每次调⽤ rng 时⽣成不同的数字序列。
2.3⽤法三:rng(seed,generator)、rng('shuffle',generator)
制定随机数⽣成的类型,因为我们使⽤的是算法来⽣成随机数的,故指定的便是算法的类型
'twister':梅森旋转
'simdTwister':⾯向 SIMD 的快速梅森旋转算法
'combRecursive':组合多递归
'philox':执⾏ 10 轮的 Philox 4×32 ⽣成器
'threefry':执⾏ 20 轮的 Threefry 4×64 ⽣成器
'multFibonacci':乘法滞后 Fibonacci
'v5uniform':传统 MATLAB® 5.0 均匀⽣成器
'v5normal':传统 MATLAB 5.0 正常⽣成器
'v4':传统 MATLAB 4.0 ⽣成器
2.4⽤法四:rng('default')
rng('default') 将 rand、randi 和 randn 使⽤的随机数⽣成器的设置重置为其默认值。这样,会⽣成相同的随机数,就好像您重新启动了 MATLAB。默认设置是种⼦为 0 的梅森旋转⽣成器。
2.5⽤法五:scurr = rng和rng(s)
功能在上述的代码中可以看到
2.6sprev = rng(...)
返回 rand、randi 和 randn 使⽤的随机数⽣成器的以前设置,然后更改这些设置。
使⽤传统⽣成器。
sprev = rng(0,'v5uniform')
sprev =
Type: 'twister'
Seed: 0
State: [625x1 uint32]
x = rand
x =
0.9501
通过调⽤ rng 还原以前的设置。
rng(sprev)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论