www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgoptimoptions/loadobj.m

    function opts = loadobj(opts)
%LOADOBJ Load-time object actions
%
%  OBJ = LOADOBJ(OBJ)

%  Copyright 2005-2010 The MathWorks, Inc.


if isstruct(opts) 
    
    if ~isfield(opts, 'version')
        % Add a preferred API version to use when running
        opts.preferredAPI = 3;
        opts.version = 2;
    end
    if opts.version < 5
        opts.EqConMode = 'off';
    end
    
    if opts.version < 4
        % Add a renameMode to indicate whether objectives and constraints can
        % be renamed for this optimization
        opts.renameMode = false;
    end
    
    if opts.version < 3
        % AddParameter method change. The typestr field in the parameter
        % structure has been replaced with a more flexible type field. The
        % value field in the parameter structure is now a default value for
        % *every* parameter type.
        if isstruct(opts.parameters)
            nPars = length(opts.parameters);
            newPars(nPars).label = [];
            newPars(nPars).typestr = [];
            newPars(nPars).typequalifier = [];
            newPars(nPars).value = [];
            newPars(nPars).displayname = [];
            [newPars.label] = deal(opts.parameters.label);
            [newPars.typestr] = deal(opts.parameters.typestr);
            [newPars.displayname] = deal(opts.parameters.displayname);
            for i = 1:nPars
                switch opts.parameters(i).typestr
                    case 'number'
                        newPars(i).typequalifier = [-Inf, Inf];
                        newPars(i).value = opts.parameters(i).value;
                    case 'list'
                        newPars(i).typequalifier = opts.parameters(i).value;
                        newPars(i).value = opts.parameters(i).value{1};
                    case 'boolean'
                        newPars(i).typequalifier = [];
                        newPars(i).value = opts.parameters(i).value;
                end
            end
            opts.parameters = newPars;
        else
            % If here, the parameter field contains an optim manager. No upgrade
            % actions required in this case
        end

    end
end

opts.version = 5;