How to use ga() without generating a prepopulated figure with stop and pause button with matlab app
조회 수: 6 (최근 30일)
이전 댓글 표시
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!
댓글 수: 0
채택된 답변
Alan Weiss
2020년 12월 4일
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
추가 답변 (1개)
Benjamin Kraus
2020년 12월 3일
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
Benjamin Kraus
2020년 12월 4일
편집: Benjamin Kraus
2020년 12월 4일
Correction: See Alan Weiss's reply about using an output function instead of a plot function.
참고 항목
카테고리
Help Center 및 File Exchange에서 Genetic Algorithm에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!