MATLAB的ga函数中的括号有什么作用?

时间:2014-11-08 21:44:55

标签: matlab

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来解决具有不同约束的另一个优化问题,但我无法将它们正确地输入到函数中,并且无法找到有关这些括号的信息。

1 个答案:

答案 0 :(得分:1)

[]只是意味着您没有指定那些输入,因为您在非指定的输入之后定义了其他输入,所以需要使用方括号。原因在于,对于许多函数,输入参数由它们的'数字',order来标识。因此,如果您从上面的示例中删除[],Matlab会认为您定义的输入参数与您预期/原始的不同。