matlab中的randn函數如何重複前一次的隨機數?
01-08
比如某一次randn(1,3)=[0,1,-1],我不知道它所處的狀態,現在希望再運行一次得到同樣的結果,如何實現?
這個時候可以用上rng了。rng可以用來記錄某次生成隨機數時生成器所使用的隨機數種子(seed)。
舉個栗子:
比如想找回第一次生成的隨機數s = rng;
a = randn(1,3)
b = randn(1,3)
rng(s)
repeat = randn(1,3)
%% result
a =
0.7254 -0.0631 0.7147
b =
-0.2050 -0.1241 1.4897
repeat =
0.7254 -0.0631 0.7147
各種用種子生成隨機數的方法,種子一樣,每次出來的數也一樣
到workspace中把產生的隨機數(組)存儲起來,下次用的時候,用load載入這個變數即可。
也可以在第一次隨機時用指定數值作為種子。之後用相同種子產生隨機數。這樣一個包含隨機數的代碼跑出來,結果總是一致的。
推薦閱讀:
※Matlab求解方程組?
※Python有沒有類似Matlab中xlswrite這種寫入數據到Excel的方式?
※機械的學生,MATLAB 應該學些什麼?
※四旋翼可不可以用地面站(PC機)來實現姿態結算和控制,機載處理器只做讀數據和收發數據用?
※如何評價 MATLAB R2017a (Prerelease)?
TAG:MATLAB |