gamultiobj输出函数错误
9的观点(30天)
显示旧的评论
你好,
我有一个多目标与gamultiobj opimization问题,想要解决它。我想拯救我的目标函数的优化值在每次迭代数组。我发现输出函数的示例代码:
http://de.mathworks.com/help/optim/ug/output-functions.html
。但是当我示例代码适用于我的问题,是这样的:
函数(历史、searchdir) = runfmincon
FitnessFunction = @needfunction;
numberOfVariables = 8;
磅= 0 (1,8);
乌兰巴托= [];
%与OUTFUN建立共享变量
历史。x = [];
历史。fval = [];
searchdir = [];
选择= gaoptimset (“PlotFcns”@gaplotpareto,“UseParallel”,真的,“OutputFcns”@outfun,“PopulationSize”5);
xsol = gamultiobj (FitnessFunction numberOfVariables,[],[],[],[],磅,[],选项);
函数停止= outfun (x, optimValues状态)
停止= false;
开关状态
情况下“init”
持有在
情况下“通路”
%连接当前点和目标函数
%与历史价值。必须一个行向量x。
历史。fval = [history.fval;optimValues.fval];
历史。x = [history.x;x];
%连接当前的搜索方向
% searchdir。
searchdir = [searchdir;…
optimValues.searchdirection ');
情节(x (1), (2),“o”);
%标签点与迭代数量和添加标题。
%添加酒精含量x(1)分离标签从策划“o”
文本(x(1) +酒精含量,(2),…
num2str (optimValues.iteration));
标题(‘序列’fmincon点计算的);
情况下“完成”
持有从
否则
结束
结束
结束
我得到以下错误:
错误使用runfmincon / outfun
太许多输出参数。
错误在gaoutput(39)行
(状态、optnew改变)=函数宏指令(函数{我}、options.OutputPlotFcnOptions状态,国旗,args{我}{:});
错误在gamultiobjsolve(13号线)
(状态、期权)= gaoutput (FitnessFcn、期权、州现状后);
错误在gamultiobj(第274行)
[x, fval exitFlag、输出人口,分数)= gamultiobjsolve(据nvar FitnessFcn,…
错误在runfmincon(16行)
xsol = gamultiobj (FitnessFunction numberOfVariables,[],[],[],[],磅,[],选项);
这将是伟大的,如果有人可以帮助我
0评论
接受的答案
更多的答案(2)
沃尔特·罗伯森
2016年9月1日
模式Seyednezhad
2020年5月31日
编辑:模式Seyednezhad
2020年5月31日
你好,
我也有同样的问题。syntaxt页面并不是对我有用。我不能找到我的错误。
[历史,searchdir] = runmultiobjfunc函数
%与OUTFUN建立共享变量
历史。x = [];
历史。fval = [];
searchdir = [];
%调用优化
据nvar = 2;
磅= [1,3];
乌兰巴托= [19.2,6.27];
选择= optimoptions (@gamultiobj OutputFcn, @outfun,…
“显示”、“iter’,‘MaxGenerations’, 200年,“PopulationSize”, 50);
据nvar xsol = gamultiobj (@objfun,[],[],[],[],磅,乌兰巴托,选项);
%设置输出函数
函数停止= outfun (x, optimValues状态)
停止= false;
开关状态
例“init”
抓住
例“通路”
%连接当前点和目标函数
%与历史价值。必须一个行向量x。
历史。fval = [history.fval;optimValues.fval];
历史。x = [history.x;x];
%连接与searchdir当前的搜索方向。
searchdir = [searchdir;…
optimValues.searchdirection ');
情节(x (1), (2),“o”);
%标签点与迭代数量和添加标题。
%添加酒精含量x(1)分离标签从策划“o”
文本(x(1) +酒精含量,(2),…
num2str (optimValues.iteration));
标题(“序列gamultiobj点计算的”);
情况下完成的
推迟
否则
结束
结束
结束
错误的是:
错误使用runmultiobjfunc / outfun
太多的输出参数。
错误gaoutput(39)行
(状态、optnew改变)=函数宏指令(函数{我}、options.OutputPlotFcnOptions状态,国旗,args{我}{:});
错误在gamultiobjsolve(13号线)
(状态、期权)= gaoutput (FitnessFcn、期权、州现状后);
错误gamultiobj(第303行)
[x, fval exitFlag、输出人口,分数)= gamultiobjsolve (FitnessFcn,据nvar,…
错误runmultiobjfunc(15行)
据nvar xsol = gamultiobj (@objfun,[],[],[],[],磅,乌兰巴托,选项);