www.gusucode.com > mbcexpr 工具箱 matlab 源码程序 > mbcexpr/@cgmodexpr/cgmodexpr.m

    function mod = cgmodexpr(varargin)
%CGMODEXPR Constructor for the cgmodexpr class
%
%  M = CGMODEXPR returns an empty cgmodexpr object.
%  M = CGMODEXPR(name,xregexportModel) returns a cgmodexpr object.
%
%  Only xregexportmodel objects are valid as input models - see the
%  xregexportmodel class.

%  Copyright 2000-2009 The MathWorks, Inc. and Ford Global Technologies, Inc.


if isempty(varargin)
    [e, mod] = i_createdefaults;
    mod = class(mod , 'cgmodexpr' , e);
else
    if isstruct(varargin{1})
        mod = varargin{1};
        e = mod.cgexpr;
        mod = rmfield(mod, 'cgexpr');
        mod = class(mod , 'cgmodexpr' , e);
    else
        [e, mod] = i_createdefaults;

        name = varargin{1};
        if ~ischar(name)
            error(message('mbc:cgmodexpr:InvalidArgument'));
        end
        e = setname(e , name);

        model = varargin{2};
        if ~isa(model , 'xregexportmodel')
            error(message('mbc:cgmodexpr:InvalidArgument1'));
        end
        mod.model = model;

        %Set up null xregpointers to input expressions.
        e = setinputs(e, null(xregpointer, 1, nfactors(model)));

        mod = class(mod , 'cgmodexpr' , e);
    end
end


function [e,m] = i_createdefaults
e = cgexpr;
m = struct('clips', [-inf inf], ...
    'version', 4, ...
    'model', [], ...
    'EvalMode', 1);                % {1,2,3} => {Value, PEV, Constraint}