記錄遺傳演算法編程中需要的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 NaNR2 =
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 |