在this page上,MATLAB的遗传算法用作:
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
来解决具有不同约束的另一个优化问题,但我无法将它们正确地输入到函数中,并且无法找到有关这些括号的信息。
答案 0 :(得分:1)
[]
只是意味着您没有指定那些输入,因为您在非指定的输入之后定义了其他输入,所以需要使用方括号。原因在于,对于许多函数,输入参数由它们的'数字',order来标识。因此,如果您从上面的示例中删除[]
,Matlab会认为您定义的输入参数与您预期/原始的不同。