我使用Matlab的ga()函数以下列方式进行参数优化:
options = gaoptimset('CrossoverFraction',0.8,'FitnessScalingFcn',@fitscalingrank,'TolFun',1e-6,...
'Generations',50,'PopulationSize',20,'EliteCount',2);
minfn = @(z)myLossFunction(z);
[x,fval,~,output] = ga(minfn,8,[],[],[],[],LB,UB,[],1,options);
LB和UB只是具有变量下限和上限的矩阵。
以上代码效果很好。现在,我已经制作了ga()函数的本地副本并将其命名为ga2(),因为我想对它进行一些修改。现在我用以下方式调用它:
[x,fval,~,output] = ga2(minfn,8,[],[],[],[],LB,UB,[],1,options);
我还没有做任何修改,我只是将其重命名为ga2()。
现在我在ga2()的gaminlpvalidateoptions(options);
电话的第295行收到以下错误:
未定义的功能' gaminlpvalidateoptions'输入参数 键入' struct'。
如果我发表评论,我会在第328行收到新错误:
未定义的功能' gacommon'对于类型的输入参数 ' function_handle'
为什么会这样,我该如何摆脱?我刚刚复制并重命名了ga()函数。