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.