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 隨機生成兩個數值之間的隨機數Matlab隨機
- Matlab各種隨機數彙總Matlab隨機
- matlab之生成不重複的隨機整數Matlab隨機
- Matlab生成隨機矩陣Matlab隨機矩陣
- MATLAB中常用的幾種隨機數生成函式Matlab隨機函式
- 生成隨機數隨機
- Matlab產生隨機數函式小結Matlab隨機函式
- matlab生成0,1隨機序列Matlab隨機
- MATLAB設定隨機數Matlab隨機
- matlab 隨機數種子Matlab隨機
- MATLAB中如何生成指定範圍的隨機整數向量Matlab隨機
- JavaScript 生成隨機數JavaScript隨機
- mysql生成隨機數MySql隨機
- matlab產生隨機數或隨機矩陣Matlab隨機矩陣
- python生成隨機數、隨機字串Python隨機字串
- MATLAB生成服從各種分佈的隨機數函式Matlab隨機函式
- MATLAB獲取隨機數——randMatlab隨機
- [隨機數詳解]生成一個隨機數,生成指定範圍的隨機數及隨機陣列去重隨機陣列
- 【matlab程式設計】matlab隨機數函式Matlab程式設計隨機函式
- 隨機數生成器隨機
- java隨機數生成原理Java隨機
- 生成隨機整數方法隨機
- python 隨機數生成Python隨機
- C++生成隨機數C++隨機
- 生成總和固定 可變範圍的隨機數隨機
- 機器學習演算法的隨機資料生成總結機器學習演算法隨機
- matlab中的偽隨機數原理Matlab隨機
- Linux Shell 生成隨機數和隨機字串Linux隨機字串
- 微信小程式生成隨機數微信小程式隨機
- 更安全的隨機數生成隨機
- 幾種生成隨機數方法隨機
- 使用Math類生成隨機數隨機
- 無重複隨機數生成隨機
- PHP 生成更好的隨機數PHP隨機
- 在oracle 中生成隨機數Oracle隨機