matlab生成隨機數


一,matlab中生成隨機數主要有三個函數:rand, randn,randi

1,rand 生成均勻分布的偽隨機數。分布在(0~1)之間

主要語法:rand(m,n)生成m行n列的均勻分布的偽隨機數

rand(m,n,'double')生成指定精度的均勻分布的偽隨機數,參數還可以是'single'

rand(RandStream,m,n)利用指定的RandStream(我理解為隨機種子)生成偽隨機數

產生隨機整數:

 1 >> randint(1,1,[1 100])
 2 
 3 ans =
 4 
 5     81
 6 
 7 >> randint(101,[1 100])
 8 ??? randint(101,[1 100])
 9            |
10 Error: Missing variable or function.
11 
12 >> randint(10,1,[1 100])
13 
14 ans =
15 
16     56
17     96
18     46
19     53
20     90
21     20
22     40
23     15
24     49
25     29

 

2,randn 生成標准正態分布的偽隨機數(均值為0,方差為1)

主要語法:和上面一樣

3, randi 生成均勻分布的偽隨機整數

主要語法:randi(iMax)在開區間(0,iMax)生成均勻分布的偽隨機整數

randi(iMax,m,n)在開區間(0,iMax)生成mXn型隨機矩陣

r = randi([iMin,iMax],m,n)在開區間(iMin,iMax)生成m*n型隨機矩陣

示例驗證:

均值分布

概率分布圖:

y=rand(1,3000000);
    hist(y,2000);

二,關於隨機種子,偽隨機數的重復生成

正常情況下每次調用相同指令例如rand生成的偽隨機數是不同的,

例如:

rand(1,3)

rand(1,3)

matlab的輸出為:

ans =
    0.139043482536049 0.734007633362635 0.194791464843949

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM