matlab中randn(‘state’)


randn('state')

隨機數都是由RandStream隨機數據流生成的(里面有一套固定的算法,一般用時間發生裝置)。其中就有'state','seed','twister'等參數。

‘state’是對隨機發生器的狀態進行初始化,並且定義該狀態初始值。比如你過一段時間還要使用這個隨機數的時候,還能保持當前的隨機取值。

比如
randn('state',2013)
a = randn(1)
b = randn(1) 會發現與上一個隨機值不一樣

如果再定義一次
randn('state',2013)
c = randn(1) 會發現與a的值一樣
(1)RANDN產生正態分布數的語法:
RANDN(N) :產生N× N的矩陣,其元素是按正態分布的數組;
RANDN(M,N) and RANDN([M,N]):產生M×N的矩陣;
RANDN(M,N,P,...) or RANDN([M,N,P...])產生隨機序列;

(2)RANDN產生偽隨機數的語法:
發生器的狀態決定所產生數的序號。
S = RANDN('state') 是一個二元向量,包括標准發生器的狀態;
RANDN('state',S):設置發生器的狀態為S(即標准狀態);
RANDN('state',0):設置發生器的初始狀態;
RANDN('state',J):J為整數,設置發生器到J階狀態;

(3)MATlAB 4.X應用一個單獨的種子來產生隨機數:
RANDN('seed',0) and RANDN('seed',J)作用與RANDN('state',0)和RANDN('state',J)一樣,但使用Matlab 4.x隨機數發生器。
RANDN('seed'):返回MATlAB 4.X發生器的當前種子。

例如:randn(’seed‘,1),表明選定了一個初狀態,再定義隨機數列x=randn(1,100),x的值會確定下來,不會每運行一次而產生不同的隨機數。

 

rand與randn的區別

rand是平均分布,即等概率分布,等概率產生0-1范圍內的數。

randn是標准正態分布,均值為0,標准差為1.

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM