標籤:

matlab中的randn函數如何重複前一次的隨機數?

比如某一次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 |