www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@xregoptmgr/getAlternatives.m

    function oaList = getAlternatives(om,varargin)
%GETALTERNATIVES get alternative optim managers.
%
% oaList= getAlternatives(om,varargin)

%  Copyright 2006-2008 The MathWorks, Inc. and Ford Global Technologies, Inc.

n = length(om.Alternatives);
oaList = cell(1,n);
OK = true(1,n);
if n>0
    if isempty(varargin) && ~isempty(om.Context)
        % context implementation so need a context class
        Args = {feval(om.Context)};
    elseif isempty(varargin)
        Args = {xregoptmgr};
    else
        Args = varargin;
    end

    % find alternatives
    for i = 1:n
        % form optim managers
        try
            [oaList{i},OK(i)] = feval(om.Alternatives{i},Args{:});
            oaList{i}.Alternatives = om.Alternatives;
        catch
            OK(i) = false;
        end
    end
    % remove bad alternatives
    oaList= oaList(OK);
end
if isempty(oaList)
    % use current optim manager if there were none
    oaList = {om};
end