MATLAB函式randn簡介

風景不在對岸wj發表於2017-12-18
randn(random normal distribution)是一種產生標準正態分佈隨機數矩陣的函式,屬於MATLAB函式。返回一個n*n的隨機項的矩陣。如果n不是個數量,將返回錯誤資訊。
用法:
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
返回一個每次都變化的數量。

應用舉例

編輯
Example 1. R = randn(3,4) 將生成矩陣
R =
1.1650 0.3516 0.0591 0.8717
0.6268 -0.6965 1.7971 -1.4462
0.0751 1.6961 0.2641 -0.7012
For a histogram of the randn distribution, see hist.
Example 2. 產生一個隨機分佈的指定均值方差的矩陣:將randn產生的結果乘以標準差,然後加上期望均值即可。例如,產生均值為0.6,方差為0.1的一個5*5的隨機數方式如下:
x = .6 + sqrt(0.1) * randn(5)
x =
0.8713 0.4735 0.8114 0.0927 0.7672
0.9966 0.8182 0.9766 0.6814 0.6694
0.0960 0.8579 0.2197 0.2659 0.3085
0.1443 0.8251 0.5937 1.0475 -0.0864
0.7806 1.0080 0.5504 0.3454 0.5813
Example 3.設定randn到其預設的初始狀態格式:randn('state', 0);每次初始化randn到不同的狀態的格式randn('state', sum(100*clock))。
如何用randn產生兩個相同的矩陣:
s = randn('state');%儲存當前狀態,
u1 = randn(100);%產生100個值,
randn('state',s);%復位狀態,
u2 = randn(100); %並重復序列。格式呼叫如下:
s = randn('state');
u1 = randn(3)
randn('state',s);
u2 = randn(3)
執行結果如下:
u1 =1.6039 0.8957 -0.1072
-0.3728 -1.3913 -0.8276
0.7578 0.3116 0.0592
u2 =1.6039 0.8957 -0.1072
-0.3728 -1.3913 -0.8276
0.7578 0.3116 0.0592
從結果可以看出,這兩個矩陣的各個元素均相同,所以這兩個就是等價矩陣。
其他類似函式:rand, randperm, sprand, sprandn
Y = randn(n)
Y = randn(m,n)
Y = randn([m n])
Y = randn(m,n,p,...)
Y = randn([m n p...])
Y = randn(size(A))
randn
s = randn('state')

相關文章