www.gusucode.com > mbcexpr 工具箱 matlab 源码程序 > mbcexpr/@cgmodexpr/set.m
function varargout = set(varargin) %SET cgmodexpr set method % % Sets the properties of the model expression object. % % Usage: M = SET(M , 'property_name' , property_value) % Copyright 2000-2004 The MathWorks, Inc. and Ford Global Technologies, Inc. if nargin == 1 varargout{1} = i_ShowFields; else mod_object = varargin{1}; if nargin < 3 error(message('mbc:cgmodexpr:InvalidArgument7')); end for n = 2:2:nargin property = varargin{n}; new_value = varargin{n+1}; if ~ischar(property) error(message('mbc:cgmodexpr:InvalidArgument8')); end switch lower(property) case 'expression' %The new expression must be a cell array containing an index %and a xregpointer to a new expression. s = size(new_value); if ~iscell(new_value) || (prod(s) ~= 2) error(message('mbc:cgmodexpr:InvalidPropertyValue')); end t1 = new_value{1}; t2 = new_value{2}; if isa(t1 , 'double') && isa(t2 , 'xregpointer') index = t1; exp_ptr = t2; elseif isa(t1 , 'xregpointer') && isa(t2 , 'double') index = t2; exp_ptr = t1; else error(message('mbc:cgmodexpr:InvalidPropertyValue1')); end %Now, check that the xregpointer is an xregpointer to an expression. if ~isa(exp_ptr.info , 'cgexpr') error(message('mbc:cgmodexpr:InvalidPropertyValue2')); end if index > nfactors(mod_object) error(message('mbc:cgmodexpr:InvalidPropertyValue3')) end mod_object = setinputs(mod_object, exp_ptr, index); case 'ptrlist' if ~isa(new_value , 'xregpointer') error(message('mbc:cgmodexpr:InvalidPropertyValue4')); else mod_object = setinputs(mod_object, new_value(:)'); end case 'model' %The new_value variable has to be an xregExportModel. if isa(new_value,'xregpointer') mod_object.model = new_value.info; else mod_object.model = new_value; end case 'clips' if isa(new_value,'double') && length(new_value) == 2 if new_value(1) <= new_value(2) mod_object.clips = new_value; end end otherwise error(message('mbc:cgmodexpr:InvalidPropertyName', property)); end end if nargout > 0 varargout{1} = mod_object; elseif ~isempty(inputname(1)) assignin('caller' , inputname(1) , mod_object); end end function out = i_ShowFields %Simply returns a structure, the fieldnames of which are the set-able %fields of the Value object, and the fields contain more details. out.expression = '{1x2} cell array containing 1.Index to xregpointer list 2.cgexpr xregpointer.'; out.model = 'An xregExportModel object.'; out.ptrlist = 'A list of xregpointers to input expressions';