2014-11-08 56 views
0

this page,MATLAB的遺傳算法作爲:MATLAB的ga函數中的括號是做什麼的?

ObjectiveFunction = @simple_fitness; 
nvars = 2; % Number of variables 
LB = [0 0]; % Lower bound 
UB = [1 13]; % Upper bound 
ConstraintFunction = @simple_constraint; 
[x,fval] = ga(ObjectiveFunction,nvars,[],[],[],[],LB,UB, ... 
    ConstraintFunction) 

什麼做支架做這個功能,爲什麼有他們四個人?我注意到如果我刪除[],我得到錯誤GA requires the following inputs to be of data type double: 'ub'

我一直在嘗試使用ga解決不同約束條件下的另一個優化問題,但我無法將它們正確地輸入到函數中,並且無法找到有關這些括號的信息。

回答

1

[]僅僅意味着你不指定那些輸入,因爲你在非指定的輸入之後定義了其他輸入,所以需要方括號。其原因在於,對於許多函數來說,輸入參數通過它們的「數量」順序來標識。所以如果你從上面的例子中刪除[],Matlab會認爲你定義了一個不同於你想要的/原始的輸入參數。

+2

只是挑剔,'']'意味着空數組作爲輸入,這是指定的。這是由函數來處理任何給定輸入的空矩陣。一般來說,你不能爲任意輸入提供'[]',並期望函數使用默認值,儘管通常是這種情況。 – chappjc 2014-11-08 22:58:42

相關問題