MATLAB 生成隨機數與重置當前隨機數種子

2021-10-23 05:14:27 字數 3135 閱讀 2419

rank函式幾種常用的表示式:

x = rand 返回乙個在區間 (0,1) 內均勻分布的隨機數。
>> x = rand

x =0.8147

x = rand(n) 返回乙個 n×n 的隨機數矩陣。
r =

rand(5

)r =

5×50.8147

0.0975

0.1576

0.1419

0.6557

0.9058

0.2785

0.9706

0.4218

0.0357

0.1270

0.5469

0.9572

0.9157

0.8491

0.9134

0.9575

0.4854

0.7922

0.9340

0.6324

0.9649

0.8003

0.9595

0.6787

x = rand(sz1,...,szn) 返回由隨機數組成的 sz1×...×szn 陣列,其中 sz1,...,szn 指示每個維度的大小。
例如:rand(3,4)返回乙個 3×4 的矩陣。

>> x =

rand(3

,4)x =

0.9058

0.6324

0.5469

0.1576

0.1270

0.0975

0.9575

0.9706

0.9134

0.2785

0.9649

0.9572

一般來說,可以使用公式:

r = a +

(b-a).*

rand

(n,1

) 生成區間 (a,b) 內的 n 個隨機數。

例:生成乙個由區間 (-5,5) 內均勻分布的數字組成的 10×1 列向量。

r =-5

+(5+

5)*rand(10

,1)r =

10×1

3.1472

4.0579

-3.7301

4.1338

1.3236

-4.0246

-2.2150

0.4688

4.5751

4.6489

可以看到,上面我們生成的都是小數,而不是整數,那麼我們也可以使用randi(注意不是rand)命令來生成指定區間的整數。

例:使用 randi 函式(而不是 rand)生成在 10 和 50 之間均勻分布的 5 個隨機整數。

r =

randi([

1050],

1,5)

r =1×5

4347

1547

35

例:生成乙個實部和虛部位於區間 (0,1) 內的隨機複數。

a = rand +

1i*rand

a =0.8147

+0.9058i

隨機數生成器–類似c語言中的偽隨機數種子,我們讓計算機產生的隨機數其實並不是那麼的「隨機」。

當初始的隨機數種子是確定的時候,由它生成的一系列的數都是確定的,所以我們又將此稱為偽隨機數。

只有我們不斷重置當前隨機數種子的時候(c語言中把時間當成隨機數種子),我們由它產生的一系列數字才可能看起來是隨機的。

既然這樣我們也可以儲存當前的隨機數種子,這樣做看起來雖然沒有任何意義,但不如這樣想,當我們想要的資料是通過某個隨機數種子生存,下次我們還想要一模一樣的資料的時候,我們就無從下手,唯一的做法是儲存當前的隨機數種子,下次繼續呼叫我們儲存的隨機數種子即可。

例:儲存隨機數生成器的當前狀態並建立乙個由隨機數組成的 1×5 向量。

s = rng;

r =rand(1

,5)r =

1×50.8147

0.9058

0.1270

0.9134

0.6324

``將隨機數生成器的狀態恢復為 s,然後建立乙個由隨機數組成的新 1×5 向量。值與之前相同。

```cpp

rng(s)

;r1 =

rand(1

,5)r1 =

1×50.8147

0.9058

0.1270

0.9134

0.6324

例:建立乙個由隨機數組成的 3×2×3 陣列。

>> x =

rand(3

,2,3

)x(:

,:,1

)=0.1869

0.6463

0.4898

0.7094

0.4456

0.7547x(

:,:,

2)=0.2760

0.1626

0.6797

0.1190

0.6551

0.4984x(

:,:,

3)=0.9597

0.2238

0.3404

0.7513

0.5853

0.2551

例:建立乙個由其元素為單精度值的隨機數組成的 1×4 向量。

r =

rand(1

,4,'single'

)r =

1x4 single row vector

0.8147

0.9058

0.1270

0.9134

class

(r)ans =

'single'

matlab生成隨機數函式

1.matlab 函式rand 產生在區間 0,1 的均勻隨機數,它是平均分布在 0,1 之間。乙個稱為 seed 的值則是用來控制產生隨機數的次數。均勻隨機數函式的語法為 rand n rand m,n 其結果分別產生一矩陣含n n個隨機數和一矩陣含m n的隨機數。注意每次產生隨機數的值都不會一樣...

matlab隨機數的生成

參考 函式含義例項 特例randi 均勻分布的偽隨機整數 i表示integer randi統一左值為1,且可以取到右端點 s1 randi 5,3,3 注 矩陣的尺寸是3 3 元素服從 1,5 的均勻分布 s2 randi 5,6,6,3 注 生成三個矩陣,每個矩陣的尺寸是6 6 元素服從 1,5 ...

MATLAB隨機數生成器

1 rand 生成 0,1 區間上均勻分布的隨機數 基本語法 rand m,n,p 生成排列成m n p 多維向量的隨機數。如果只寫m,則生成m m矩陣 如果引數為 m,n 可以省略方括號。2 randn 生成服從標準正太分布 均值為0,方差為1 的隨機數 基本語法 randn m,n,p,解釋同1...