matlab生成隨機數

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

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

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

rand(m,n,'double')生成指定精度的均勻分佈的僞隨機數,參數還能夠是'single'blog

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

產生隨機整數:function

 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)class

主要語法:和上面同樣隨機數

3, randi 生成均勻分佈的僞隨機整數語法

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

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

相關文章
相關標籤/搜索