rand函式用來產生均勻分佈的隨機數或矩陣
語法
Y = rand(n)
Y = rand(m,n)
Y= rand([m n])
Y = rand(m,n,p,...)
Y = rand([m n p...])
Y = rand(size(A))
rand函式產生由在(0, 1)之間均勻分佈的隨機陣列成的陣列。
Y = rand(n) 返回一個n x n的隨機矩陣。如果n不是數量,則返回錯誤資訊。
Y = rand(m,n) 或 Y = rand([m n]) 返回一個m x n的隨機矩陣。
Y = rand(m,n,p,...) 或 Y = rand([m n p...]) 產生隨機陣列。
Y = rand(size(A)) 返回一個和A有相同尺寸的隨機矩陣。
比如輸入:
y=rand(3,4);
>> y
y =
0.1656 0.6541 0.4505 0.9133
0.6020 0.6892 0.0838 0.1524
0.2630 0.7482 0.2290 0.8258
另外還有一個:s=rand('state')
這一個是產生一個每次都會變化的數值,如
輸入:
y=rand('state');
0.8301
0.6705
0.0845
0.0686
0.0371
0.3854
0.1653
0.3752
0.7297
0.4534
0.8596
0.5685
0.9848
0.3742
0.3715
0.9499
0.9774
0.7428
0.4958
0.4157
0.0777
0.3299
0.9429
0.0906
0.3091
0.5518
0.0350
0.0018
0.9854
0.8229
0.4586
0.9710
0
0.0000
(2)randn函式用法
randn的用法和上面的rand函式的用法一樣,所不同的是,randn產生的數值服從正態分佈;
產生一個隨機分佈的指定均值和方差的矩陣:將randn產生的結果乘以標準差,然後加上期望均值即可。例如,產生均值為1.6,方差為0.1的一個6*6的隨機數方式如下:
x = 1.6 + sqrt(0.1) * randn(6)
x =
1.6392 1.8610 1.5121 1.7606 1.5054 1.2903
2.0543 2.0361 1.8218 1.6892 1.6072 1.2343
0.9799 1.2654 0.9512 1.6106 1.5171 1.4313
1.5375 1.4518 1.4881 1.1783 1.0465 0.9667
1.2180 1.5138 1.3396 1.9565 1.5097 1.9049
2.5196 1.9474 1.1013 1.7107 1.3371 1.7645
另外下面的用法需要整理一下:
1,rand(3)*3 rand(3)是一個3*3的隨機矩陣(數值範圍在0~1之間) 然後就是每個數乘上3
2 ,用matlab隨機產生50個1到300之間的正數1+fix(300*rand(1,50));
3,用rand函式隨機取100個從-1到1的數x1,x2,...,x = rand(1,100) * 2 - 1;
那麼上面的fix函式是什麼意思呢?
fix就是取整函式,當是實數時取整,去掉小數點後面的位數;如果是複數,則實數部分和虛數部分均取整,比如下面的兩個例子所示:
x=3.32;
>> y=fix(x)
3
那麼,遇到複數怎麼辦呢?
x = [1-2.9i 3+4.5i 5-6.7i 9-10.2i]
1.0000 - 2.9000i 3.0000 + 4.5000i 5.0000 - 6.7000i 9.0000 -10.2000i
1.0000 - 2.0000i 3.0000 + 4.0000i 5.0000 - 6.0000i 9.0000 -10.0000i
rand函式用來產生均勻分佈的隨機數或矩陣
語法
Y = rand(n)
Y = rand(m,n)
Y= rand([m n])
Y = rand(m,n,p,...)
Y = rand([m n p...])
Y = rand(size(A))
rand函式產生由在(0, 1)之間均勻分佈的隨機陣列成的陣列。
Y = rand(n) 返回一個n x n的隨機矩陣。如果n不是數量,則返回錯誤資訊。
Y = rand(m,n) 或 Y = rand([m n]) 返回一個m x n的隨機矩陣。
Y = rand(m,n,p,...) 或 Y = rand([m n p...]) 產生隨機陣列。
Y = rand(size(A)) 返回一個和A有相同尺寸的隨機矩陣。
比如輸入:
y=rand(3,4);
>> y
y =
0.1656 0.6541 0.4505 0.9133
0.6020 0.6892 0.0838 0.1524
0.2630 0.7482 0.2290 0.8258
另外還有一個:s=rand('state')
這一個是產生一個每次都會變化的數值,如
輸入:
y=rand('state');
>> y
y =
0.8301
0.6705
0.0845
0.0686
0.0371
0.3854
0.1653
0.3752
0.7297
0.4534
0.8596
0.5685
0.9848
0.3742
0.3715
0.9499
0.9774
0.7428
0.4958
0.4157
0.0777
0.3299
0.9429
0.0906
0.3091
0.5518
0.0350
0.0018
0.9854
0.8229
0.4586
0.9710
0
0
0.0000
(2)randn函式用法
randn的用法和上面的rand函式的用法一樣,所不同的是,randn產生的數值服從正態分佈;
產生一個隨機分佈的指定均值和方差的矩陣:將randn產生的結果乘以標準差,然後加上期望均值即可。例如,產生均值為1.6,方差為0.1的一個6*6的隨機數方式如下:
x = 1.6 + sqrt(0.1) * randn(6)
x =
1.6392 1.8610 1.5121 1.7606 1.5054 1.2903
2.0543 2.0361 1.8218 1.6892 1.6072 1.2343
0.9799 1.2654 0.9512 1.6106 1.5171 1.4313
1.5375 1.4518 1.4881 1.1783 1.0465 0.9667
1.2180 1.5138 1.3396 1.9565 1.5097 1.9049
2.5196 1.9474 1.1013 1.7107 1.3371 1.7645
另外下面的用法需要整理一下:
1,rand(3)*3 rand(3)是一個3*3的隨機矩陣(數值範圍在0~1之間) 然後就是每個數乘上3
2 ,用matlab隨機產生50個1到300之間的正數1+fix(300*rand(1,50));
3,用rand函式隨機取100個從-1到1的數x1,x2,...,x = rand(1,100) * 2 - 1;
那麼上面的fix函式是什麼意思呢?
fix就是取整函式,當是實數時取整,去掉小數點後面的位數;如果是複數,則實數部分和虛數部分均取整,比如下面的兩個例子所示:
x=3.32;
>> y=fix(x)
y =
3
那麼,遇到複數怎麼辦呢?
x = [1-2.9i 3+4.5i 5-6.7i 9-10.2i]
x =
1.0000 - 2.9000i 3.0000 + 4.5000i 5.0000 - 6.7000i 9.0000 -10.2000i
>> y=fix(x)
y =
1.0000 - 2.0000i 3.0000 + 4.0000i 5.0000 - 6.0000i 9.0000 -10.0000i