Effacer les filtres
Effacer les filtres

How to use ga() without generating a prepopulated figure with stop and pause button with matlab app

1 vue (au cours des 30 derniers jours)
I am trying to build a matlab app which uses the ga function for genetic optimization. It is possible to define an own plotfcn (in this case plotnd) which is called every time a generation is built.
options = optimoptions('ga');
% Some Code
options = optimoptions(options,'PlotFcn', @plotnd);
% Some Code
[x,fval,exitflag,output,population,score]=ga(..... ,options);
I use this function to plot the best individual inside of my matlab app UIAxes object:
function state = plotnd(options, state, flag)
% Some Code (generate Data to plot out of state)
% Find Running Matlab App
app = get(findall(0, 'Name', 'MyMatlabApp'), 'RunningAppInstance');
% Get UIAxes of Matlab App
ax = app.OptimizationPlot;
% Plot Data From state Within UIAxes
plot(Data.X,Data.Y,'Parent', ax)
% Some Code
end
The function plotnd is called and the Data (Data.X and Data.Y) is plotted correct in my matlab app.
However, everytime the plotnd function is called, matlab opens a UI Figure populated with a stop and a pause button.
Is there any way, that matlab is not opening this figure? I want to create my own stop and pause buttons within my matlab app.
Thank you in advance!

Réponse acceptée

Alan Weiss
Alan Weiss le 4 Déc 2020
If you don't want the buttons, then use an output function instead of a plot function. See Custom Output Function for Genetic Algorithm.
Alan Weiss
MATLAB mathematical toolbox documentation

Plus de réponses (1)

Benjamin Kraus
Benjamin Kraus le 3 Déc 2020
This looks like a limitation of the ga code that creates the buttons, as I can't see any way to control where those buttons are placed or whether they are created at all. I suggest contact MathWorks Technical Support to request this as an enhancement.
  2 commentaires
Benjamin Kraus
Benjamin Kraus le 4 Déc 2020
Modifié(e) : Benjamin Kraus le 4 Déc 2020
Correction: See Alan Weiss's reply about using an output function instead of a plot function.

Connectez-vous pour commenter.

Produits


Version

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by