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.63242.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 生成器
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: 0State: [625x1 uint32]x = randx =0.9501 通過調用 rng 還原以前的設置。rng(sprev)https://www.cnblogs.com/andrew-address/p/13030190.html
https://blog.csdn.net/weixin_40493805/article/details/101903159
總結
以上是生活随笔為你收集整理的matlab中的rng函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 薄荷健康如何查看每天的饮食
- 下一篇: 将matlab中数据输出保存为txt或d