主要问题是您不了解工具箱的工作原理。您应该参考文档以了解整个想法。
因此,适应度函数应该是一个函数句柄并且应该返回一个标量。
健身fcn
处理适应度函数。适应度函数应该接受长度为 nvars的行向量并返回一个标量值。
首先,您的功能定义不明确。如果你想定义一个匿名函数,你应该
% A function handle to an anonymous function that returns an scalar.
% You should change this function accordingly to your expectations.
% Also, note that this handle could be of a function defined in a file too.
parabola = @(x) prod(x);
% Parameters for the GA
optGA = gaoptimset('PlotFcns', @gaplotbestfun, 'PlotInterval', 10, 'PopInitRange', [-10 ; 10]);
[Xga,Fga] = ga(parabola,2,optGA)
使用 GA 的 GUI 也可以实现相同的目的。如果你想在m
文件中定义你的函数,你应该有类似的东西:
抛物线
function [y] = parabola(x)
% This should return a scalar
y = prod(x);
你定义句柄就像fh = @parabola
. 在上面的代码中,您替换parabola
为新句柄,fh
.
我希望这可以帮助您入门。