一、理論準備
matlab函數randn:産生均值為0,方差 σ^2 = 1,标準差σ = 1的正态分布的随機數或矩陣的函數。
用法:Y = randn(n),傳回一個n*n的随機項的矩陣。如果n不是個數量,将傳回錯誤資訊。
Y = randn(m,n) 或 Y = randn([m n]),傳回一個m*n的随機項矩陣。
Y = randn(m,n,p,...) 或 Y = randn([m n p...]),産生随機數組(感覺就是三維數組,請看如下例子)。
Y = randn(size(A)),傳回一個和A有同樣維數大小的随機數組。
randn
s = randn('state'),估計和C++裡初始化随機種子一個意思,随便了。
二、舉例分析
産生一個随機分布的指定均值和方差的矩陣:将randn産生的結果乘以标準差,然後加上期望均值即可。例如,産生均值為0.6,方差為0.1的一個5*5的随機數方式如下:
其他類似函數:rand, randperm, sprand, sprandn
三、拓展
用matlab随機産生60個1到365之間的正數 1+fix(365*rand(1,60)),fix就是取整函數。
用rand函數随機取100個從-1到1(原來寫成了2)的數x1,x2,...,x = rand(1,100) * 2 - 1。
逗号表示行,分号表示列。