<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235627</link>
    <title>MATLAB Central Newsreader - output function figure not updating after each iteration</title>
    <description>Feed for thread: output function figure not updating after each iteration</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Sat, 06 Sep 2008 16:21:02 -0400</pubDate>
      <title>output function figure not updating after each iteration</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235627#599043</link>
      <author>Dave Brackett</author>
      <description>I have a ga which is hybridised with fminunc:&lt;br&gt;
&lt;br&gt;
hybrid_options=optimset('OutputFcn',@fminuncOut,'Display','iter','MaxFunEvals',1000,'MaxIter',1000,'TolFun',1e-6,'TolX',1e-6);&lt;br&gt;
&lt;br&gt;
options=gaoptimset('HybridFcn',{@fminunc,hybrid_options},'UseParallel','always','PopInitRange',variable_range,'PopulationSize',25,'CrossoverFraction',0.5,'Generations',10,'StallGenLimit',50,'StallTimeLimit',40,'SelectionFcn',@selectionstochunif,'MutationFcn',{@mutationuniform,0.7},'CrossoverFcn',@crossoverscattered,'PlotFcns',@gaplotbestf},'PlotInterval',1);&lt;br&gt;
&lt;br&gt;
[x,fval,exitflag,output,final_pop]=ga(fitness_fcn,no_variables,[],[],[],[],lower_bound,upper_bound,[],options);&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
I have used fminuncOut.m as an output function from the matlab ga toolbox webinar with this intention of getting this:&lt;br&gt;
&lt;a href=&quot;http://www.mathworks.com/company/newsletters/digest/sept04/images/results5b_wl.jpg&quot;&gt;http://www.mathworks.com/company/newsletters/digest/sept04/images/results5b_wl.jpg&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
This then produces a plot of the GA history followed by the fminunc history. However, it only updates the figure once the optimisation has ended whereas I want it to update after each iteration. Does anyone know how I can make it do so? Thanks.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
fminuncOut.m consists of the following code (with the annotation part removed):&lt;br&gt;
&lt;br&gt;
function stop = fminuncOut(x,optimvalues,state)&lt;br&gt;
&lt;br&gt;
persistent fig gaIter&lt;br&gt;
stop = false;&lt;br&gt;
&lt;br&gt;
switch state&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'init'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig = findobj(0,'type','figure','name','Genetic Algorithm');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;limits = get(gca,'XLim');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gaIter = limits(2);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hold on;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'iter'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set(gca,'Xlim', [1 optimvalues.iteration + gaIter]);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fval = optimvalues.fval;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iter = gaIter + optimvalues.iteration;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plot(iter,fval,'dr')&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title(['Best function value: ',num2str(fval)],'interp','none')&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'done'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fval = optimvalues.fval;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iter = gaIter + optimvalues.iteration;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hold off&lt;br&gt;
end</description>
    </item>
    <item>
      <pubDate>Sat, 06 Sep 2008 16:31:02 -0400</pubDate>
      <title>Re: output function figure not updating after each iteration</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235627#599046</link>
      <author>Donn Shull</author>
      <description>Try following your plot statement with a drawnow statement.&lt;br&gt;
&lt;br&gt;
Donn&lt;br&gt;
&lt;br&gt;
&quot;Dave Brackett&quot; &amp;lt;davebrackett@hotmail.com&amp;gt; wrote in message &amp;lt;g9uald$ekt$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; I have a ga which is hybridised with fminunc:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; hybrid_options=optimset('OutputFcn',@fminuncOut,'Display','iter','MaxFunEvals',1000,'MaxIter',1000,'TolFun',1e-6,'TolX',1e-6);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; options=gaoptimset('HybridFcn',{@fminunc,hybrid_options},'UseParallel','always','PopInitRange',variable_range,'PopulationSize',25,'CrossoverFraction',0.5,'Generations',10,'StallGenLimit',50,'StallTimeLimit',40,'SelectionFcn',@selectionstochunif,'MutationFcn',{@mutationuniform,0.7},'CrossoverFcn',@crossoverscattered,'PlotFcns',@gaplotbestf},'PlotInterval',1);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; [x,fval,exitflag,output,final_pop]=ga(fitness_fcn,no_variables,[],[],[],[],lower_bound,upper_bound,[],options);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I have used fminuncOut.m as an output function from the matlab ga toolbox webinar with this intention of getting this:&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://www.mathworks.com/company/newsletters/digest/sept04/images/results5b_wl.jpg&quot;&gt;http://www.mathworks.com/company/newsletters/digest/sept04/images/results5b_wl.jpg&lt;/a&gt;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; This then produces a plot of the GA history followed by the fminunc history. However, it only updates the figure once the optimisation has ended whereas I want it to update after each iteration. Does anyone know how I can make it do so? Thanks.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; fminuncOut.m consists of the following code (with the annotation part removed):&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; function stop = fminuncOut(x,optimvalues,state)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; persistent fig gaIter&lt;br&gt;
&amp;gt; stop = false;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; switch state&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;     case 'init'&lt;br&gt;
&amp;gt;         fig = findobj(0,'type','figure','name','Genetic Algorithm');&lt;br&gt;
&amp;gt;         limits = get(gca,'XLim');&lt;br&gt;
&amp;gt;         gaIter = limits(2);&lt;br&gt;
&amp;gt;         hold on;&lt;br&gt;
&amp;gt;     case 'iter'&lt;br&gt;
&amp;gt;         set(gca,'Xlim', [1 optimvalues.iteration + gaIter]);&lt;br&gt;
&amp;gt;         fval = optimvalues.fval;&lt;br&gt;
&amp;gt;         iter = gaIter + optimvalues.iteration;&lt;br&gt;
&amp;gt;         plot(iter,fval,'dr')&lt;br&gt;
&amp;gt;         title(['Best function value: ',num2str(fval)],'interp','none')&lt;br&gt;
&amp;gt;     case 'done'&lt;br&gt;
&amp;gt;         fval = optimvalues.fval;&lt;br&gt;
&amp;gt;         iter = gaIter + optimvalues.iteration;&lt;br&gt;
&amp;gt;         hold off&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; </description>
    </item>
    <item>
      <pubDate>Sat, 06 Sep 2008 21:10:19 -0400</pubDate>
      <title>Re: output function figure not updating after each iteration</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235627#599062</link>
      <author>Dave Brackett</author>
      <description>ah great thanks. &lt;br&gt;
&lt;br&gt;
&quot;Donn Shull&quot; &amp;lt;donn.shull.no_spam@aetoolbox.com&amp;gt; wrote in message &amp;lt;g9ub86$kjp$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Try following your plot statement with a drawnow statement.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Donn&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &quot;Dave Brackett&quot; &amp;lt;davebrackett@hotmail.com&amp;gt; wrote in message &amp;lt;g9uald$ekt$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; I have a ga which is hybridised with fminunc:&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; hybrid_options=optimset('OutputFcn',@fminuncOut,'Display','iter','MaxFunEvals',1000,'MaxIter',1000,'TolFun',1e-6,'TolX',1e-6);&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; options=gaoptimset('HybridFcn',{@fminunc,hybrid_options},'UseParallel','always','PopInitRange',variable_range,'PopulationSize',25,'CrossoverFraction',0.5,'Generations',10,'StallGenLimit',50,'StallTimeLimit',40,'SelectionFcn',@selectionstochunif,'MutationFcn',{@mutationuniform,0.7},'CrossoverFcn',@crossoverscattered,'PlotFcns',@gaplotbestf},'PlotInterval',1);&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; [x,fval,exitflag,output,final_pop]=ga(fitness_fcn,no_variables,[],[],[],[],lower_bound,upper_bound,[],options);&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; I have used fminuncOut.m as an output function from the matlab ga toolbox webinar with this intention of getting this:&lt;br&gt;
&amp;gt; &amp;gt; &lt;a href=&quot;http://www.mathworks.com/company/newsletters/digest/sept04/images/results5b_wl.jpg&quot;&gt;http://www.mathworks.com/company/newsletters/digest/sept04/images/results5b_wl.jpg&lt;/a&gt;&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; This then produces a plot of the GA history followed by the fminunc history. However, it only updates the figure once the optimisation has ended whereas I want it to update after each iteration. Does anyone know how I can make it do so? Thanks.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; fminuncOut.m consists of the following code (with the annotation part removed):&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; function stop = fminuncOut(x,optimvalues,state)&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; persistent fig gaIter&lt;br&gt;
&amp;gt; &amp;gt; stop = false;&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; switch state&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;     case 'init'&lt;br&gt;
&amp;gt; &amp;gt;         fig = findobj(0,'type','figure','name','Genetic Algorithm');&lt;br&gt;
&amp;gt; &amp;gt;         limits = get(gca,'XLim');&lt;br&gt;
&amp;gt; &amp;gt;         gaIter = limits(2);&lt;br&gt;
&amp;gt; &amp;gt;         hold on;&lt;br&gt;
&amp;gt; &amp;gt;     case 'iter'&lt;br&gt;
&amp;gt; &amp;gt;         set(gca,'Xlim', [1 optimvalues.iteration + gaIter]);&lt;br&gt;
&amp;gt; &amp;gt;         fval = optimvalues.fval;&lt;br&gt;
&amp;gt; &amp;gt;         iter = gaIter + optimvalues.iteration;&lt;br&gt;
&amp;gt; &amp;gt;         plot(iter,fval,'dr')&lt;br&gt;
&amp;gt; &amp;gt;         title(['Best function value: ',num2str(fval)],'interp','none')&lt;br&gt;
&amp;gt; &amp;gt;     case 'done'&lt;br&gt;
&amp;gt; &amp;gt;         fval = optimvalues.fval;&lt;br&gt;
&amp;gt; &amp;gt;         iter = gaIter + optimvalues.iteration;&lt;br&gt;
&amp;gt; &amp;gt;         hold off&lt;br&gt;
&amp;gt; &amp;gt; end&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; </description>
    </item>
  </channel>
</rss>

