matlab中的rng函数 |
您所在的位置:网站首页 › rng小马 › matlab中的rng函数 |
一、matlab中的随机函数有:rand、randn
1、rand()
功能:生成0-1之间的伪随机数 e.g. rand(3) 生成一个3*3的0-1之间的伪随机数矩阵 2、randn()功能:生成标准正态分布的伪随机数(均值为0,方差为1) 2、randn功能:生成标准正态分布的伪随机数(均值为0,方差为1) rand()是产生随机数的,每一次产生的都不一样,这样才叫做随机数。但是,有些情况,如果我需要随机数是一样的,我需要跟踪一下,那怎么办? 3、用rng函数控制随机数。 二、rng函数的功能:控制随机函数的生成 2.1 用法一:rng(seed)rng(seed) 使用非负整数 seed 为随机数生成器提供种子,以使 rand、randi 和 randn 生成可预测的数字序列。 (seed用来控制rand和randn函数生成随机数,例如rand(‘seed’,0)每次生成的随机数都是一样的) 将当前生成器设置保存在 s 中: s = rng; % 以 s 结构体的形式返回当前随机数生成器的设置。 调用 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根据当前时间为随机数生成器提供种子。这样,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 生成器 e.g. rng(seed) 指定 MATLAB 随机数生成器的种子。例如,rng(1) 使用种子 1 初始化梅森旋转生成器。 2.4 用法四:rng(‘default’)rng(‘default’) 将 rand、randi 和 randn 使用的随机数生成器的设置重置为其默认值。这样,会生成相同的随机数,就好像您重新启动了 MATLAB。默认设置是种子为 0 的梅森旋转生成器。 2.5 用法五:scurr = rng和rng(s)功能在上述的代码中可以看到 2.6 sprev = rng(…)返回 rand、randi 和 randn 使用的随机数生成器的以前设置,然后更改这些设置。 使用传统生成器。 sprev = rng(0,'v5uniform') sprev = Type: 'twister' Seed: 0 State: [625x1 uint32] x = rand x = 0.9501 通过调用 rng 还原以前的设置。 rng(sprev)https://www.cnblogs.com/andrew-address/p/13030190.html https://blog.csdn.net/weixin_40493805/article/details/101903159 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |