標籤:

記錄遺傳演算法編程中需要的matlab知識

來自網路,非原創

unifrnd可以創建隨機的連續均勻分布的數組。

A和B可以是向量也可以是標量,若兩個都是向量,則兩者都是列向量或都是行向量,而且維數相等。從A到B產生一系列區間,若A和B均為向量,則區間個數等於他們的維數;若其中恰有一個是向量,假設A為向量,則區間個數等於A的維數;若兩個均為標量,則A <= B,區間個數為1,且區間為[A,B]。然後在這一系列區間中隨機產生連續均勻分布的數組R並返回之。具體例子下述。

例1.

執行指令

>> x = [1:9];

>> y = [2:10];

>> unifrnd(x,y)

得到

ans =

1.9595 2.6557 3.0357 4.8491 5.9340 6.6787 7.7577 8.7431 9.3922

從x到y產生區間[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9.10].然後從每個區間產生一個隨機數,得到R。

例2.

執行指令

>> x = [1:3];

>> R1 = unifrnd(x,1);

>> R2 = unifrnd(1,x);

得到

R1 =

1 NaN NaN

R2 =

1.0000 1.2769 1.0923

NaN表示"not a number"即不是數字。觀察語句R1 = unifrnd(x,1);「從x到1」產生區間[1,1],[2,1],[3,1]顯然只有第一個區間可以取得「隨機數」1,其餘區間不符合規定,故而返回NaN。

觀察R2 = unifrnd(1,x);從1到x產生區間[1,1],[1,2],[1,3],取得隨機數組R2.

2.R = unifrnd(A,B,M,N,...) or R = unifrnd(A,B,[M,N,...])

returns an M-by-N-by-... array.


推薦閱讀:

matlab調用python整理(2):一些數據類型轉換
Matlab 出版繪圖
MATLAB神經網路(五):RBF網路
為什麼同樣的C++函數,在matlab混合編程中調用,和直接在VS2010中調用,計算結果不一致?

TAG:MATLAB |