Calling ga creation functions independently

Before running ga(), I would like to do some pre-analysis of the initial population. To this end, is it possible to call the default creation functions used by ga() as independent stand-alone functions?

2 个评论

Have you tried accessing either of them?:
Are they on the MATLAB path, or in a private directory?
Interestingly, gacreationuniform() is accessible, but requires input arguments that only ga() knows how to set up.

请先登录,再进行评论。

 采纳的回答

Here's one method which uses a dummy call to ga() with an OutputFcn. I'm still interested to know if there's a more direct way, however.
function pop=gaPopulation(varargin)
% pop=gaPopulation(varargin)
%
%Get the initial population constructed by ga(varargin{:}).
if numel(varargin) && ...
(isa(varargin{end}, 'optim.options.GaOptions') || isstruct(varargin{end}) )
opts=varargin{end};
if isstruct(opts)
opts=gaoptimset(opts,'OutputFcn',@outputfcn);
else
opts=optimoptions(opts,'OutputFcn',@outputfcn,'Display','none');
end
varargin(end)=[];
else
opts=optimoptions(@ga,'OutputFcn',@outputfcn,'Display','none');
end
varargin(end+1:10)={[]};
pop=[];
ga(varargin{:},opts);
function [state,options,optchanged] = outputfcn(options, state,flag)
optchanged=false;
if strcmp(flag,'init')
pop=state.Population;
state.StopFlag='stop';
end
end
end

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by