MATLAB生成隨機數總結
1,rand 生成均勻分佈的偽隨機數。分佈在(0~1)之間
語法:rand(m,n)生成m行n列的均勻分佈的偽隨機數
rand(m,n,'double')生成指定精度的均勻分佈的偽隨機數,引數還可以是'single'
rand(RandStream,m,n)利用指定的RandStream生成偽隨機數
2,randn 生成標準正態分佈的偽隨機數(均值為0,方差為1)
主要語法:和上面一樣
3, randi 生成均勻分佈的偽隨機整數
主要語法:randi(iMax)在開區間[1,iMax]上生成均勻分佈的偽隨機整數
randi(iMax,m,n)在開區間[1,iMax]生成mXn型隨機矩陣
r = randi([iMin,iMax],m,n)在開區間[iMin,iMax]生成mXn型隨機矩陣
以上3個函式都是根據標準偽隨機數發生器的內部狀態產生的,所以如果把發生器設定為初始狀態,會得到相同的隨機數,但如果改變了狀態,得到的結果就是不同的;而在matlab開啟時,發生器復位到初始狀態,所以用上面3個函式得到的結果將是一樣的
如我的matlab在開啟時輸入以下命令將得到相同的隨機數:
>> randn(3)
ans =
0.537667139546100 0.862173320368121 -0.433592022305684
1.833885014595087 0.318765239858981 0.342624466538650
-2.258846861003648 -1.307688296305273 3.578396939725761
>> randn(3)
ans =
2.769437029884877 0.725404224946106 -0.204966058299775
-1.349886940156521 -0.063054873189656 -0.124144348216312
3.034923466331855 0.714742903826096 1.489697607785465
>> randn(3)
ans =
1.409034489800479 -1.207486922685038 0.488893770311789
1.417192413429614 0.717238651328838 1.034693009917860
0.671497133608081 1.630235289164729 0.726885133383238
如果想將發生器復位到一個固定狀態,可以使用如下命令
randn('seed',0);
randn(3)
以上兩條命令將總是得到一樣的隨機數。
上述命令已經在7.7以後摒棄了(但仍可繼續用),7.7以後可以使用randstream函式,如下
reset(RandStream.getDefaultStream)
一般情況下,隨機數都是從預設隨機數流中得到資料的,而可以建立自己的資料流物件,並可以從自己的資料流物件中得到隨機數,詳見randstream函式。
如果希望matlab在不同程式段產生不同的隨機資料,可以將預設資料流設定為基於時鐘的,方法為
RandStream.setDefaultStream ...
(RandStream('mt19937ar','seed',sum(100*clock)));
normrnd是自己可以指定均數和標準差的正態分佈。
另外,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 生成隨機數序列Matlab隨機
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- Matlab產生隨機數函式小結Matlab隨機函式
- matlab生成0,1隨機序列Matlab隨機
- MATLAB設定隨機數Matlab隨機
- MATLAB中如何生成指定範圍的隨機整數向量Matlab隨機
- MATLAB生成服從各種分佈的隨機數函式Matlab隨機函式
- python生成隨機數、隨機字串Python隨機字串
- JavaScript 生成隨機數JavaScript隨機
- Linux Shell 生成隨機數和隨機字串Linux隨機字串
- C++生成隨機數C++隨機
- 隨機數生成器隨機
- java隨機數生成原理Java隨機
- 幾種生成隨機數方法隨機
- Python中如何生成隨機數?Python隨機
- 使用Math類生成隨機數隨機
- 更安全的隨機數生成隨機
- Python如何隨機生成1到100的隨機數?Python隨機
- Python生成隨機數random模組Python隨機random
- Golang生成區間隨機整數Golang隨機
- 微信小程式生成隨機數微信小程式隨機
- 巧用物件,生成不重複隨機數物件隨機
- 怎麼用Python生成隨機數Python隨機
- Random 專案總結 -11 產生隨機數字random隨機
- 偽隨機數是什麼?偽隨機數生成方法有哪些?隨機
- 每日總結(matlab)Matlab
- matlab中的產生隨機數的rand函式Matlab隨機函式
- numpy各種生成隨機數的方法隨機
- C# 生成隨機數,呼叫Random方法C#隨機random
- 在指定範圍內生成隨機數隨機
- Solidity陷阱:以太坊的隨機數生成Solid隨機
- 如何生成指定分佈的隨機數隨機
- 生成真隨機數(綜合轉載)隨機
- C++11 隨機數生成器C++隨機
- 【java】隨機生成6位的數字Java隨機
- 一文搞懂Java隨機數生成Java隨機
- 生成指定區間的隨機小數隨機
- Java如何生成隨機數 - Random、ThreadLocalRandom、SecureRandomJava隨機randomthread
- 生成某個範圍的隨機數隨機