MATLAB 函數 rand
產生在區間 (0, 1)的均勻隨機數,它是平均分佈在
在(0,1)之間,我們可以使用一個稱為seed的值來控制產生隨機數的次數。均勻隨機數函數有兩種語法形式:rand(n)和rand(m,n)。其中,rand(n)會產生一個包含n*n個隨機數的矩陣,而rand(m,n)會產生一個包含m*n個隨機數的矩陣。需要注意的是,每次產生的隨機數值都是不同的,這些值代表隨機且不可預測的結果,這也是我們使用隨機數的目的。我們可以利用這些隨機數來表示某段訊號的不規則振幅或是某個事件發生的機率。均勻隨機數具有將數值平均分佈在一個區間的特性,此特性可以從其統計密度函數(probability density function)中看出。
PDF分佈類似長條圖的分佈,說明了每個隨機數值出現的機率相同,因此被稱為均勻隨機數(function, PDF)。
試試看 help rand
實作方法:首先使用rand()函數產生N個隨機數,假設此時N個隨機數的和是S,那麼將每個隨機數變成原來的M/S倍,這樣就實現N個隨機數的和是定值M的效果了。
A = rand(1,N); S = sum(A); B = A*M/S;
下面進行實例示範和詳細講解:產生9個和為定值10的隨機數。
1、開啟matlab軟體,在指令視窗輸入:A = rand(1,9),表示產生9個0~1之間的隨機數,輸出如下:
#2、繼續輸入:S = sum(A); B = A*10/S ,表示將每個隨機數變成原來的10/sum(A)倍,此時的陣列B即為所。輸出結果如下:
#3、為了驗證一下得到的陣列B的和是否為定值10,在命令視窗輸入:sum(B),結果如下:
#rand(n):產生0到1之間的n階隨機數方陣 rand(m,n):產生0到1之間的m*n的隨機數矩陣 (現成的函數)
另外:
Matlab隨機數產生函數
betarnd 貝塔分佈的隨機數產生器
binornd 二項分佈的隨機數產生器
chi2rnd 卡方分佈的隨機數產生器
exprnd 指數分佈的隨機數產生器
frnd f分佈的隨機數產生器
gamrnd 伽瑪分佈的隨機數產生器
geornd 幾何分佈的隨機數產生器
hygernd 超幾何分佈的隨機數產生器
lognrnd 對數常態分佈的隨機數產生器
nbinrnd 負二項分佈的隨機數產生器
ncfrnd 非中心f分佈的隨機數產生器
nctrnd 非中心t分佈的隨機數產生器
ncx2rnd 非中心卡方分佈的隨機數產生器
normrnd 常態(高斯)分佈的隨機數產生器
poissrnd 泊松分佈的隨機數產生器
raylrnd 瑞利分佈的隨機數產生器
trnd 學生氏t分佈的隨機數產生器
unidrnd 離散均勻分佈的隨機數產生器
unifrnd 連續均勻分佈的隨機數產生器
weibrnd 威布爾分佈的隨機數產生器
以上是使用matlab產生一個介於0到1之間的隨機小數的詳細內容。更多資訊請關注PHP中文網其他相關文章!