www.gusucode.com > mbcexpr 工具箱 matlab 源码程序 > mbcexpr/@cgconstant/cgconstant.m
function out = cgconstant(n,val,prec) %CGCONSTANT Constructor for cgConstant class % % c = CGCONSTANT returns an empty cgConstant object % c = CGCONSTANT(namestr,val) returns a xregpointer to a Constant object % with default floating point precision. % c = CGCONSTANT(namestr,val,precision) as above but with a defined % precision object. % % Restrictions on arguments... % val - scalar double or value object % precision - @precision % Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. c = struct('prec',cgprecfloat('double')); % Double precision v = cgvalue; if nargin == 0 out = class(c , 'cgconstant' , v); else if nargin==1 % Convert structure to object c = n; v = c.cgvalue; c = rmfield(c, 'cgvalue'); elseif nargin > 1 if isa(val,'cgvalue') if isscalar(val) v=val; else error(message('mbc:cgconstant:InvalidArgument')); end elseif isa(val,'double') if length(val)>1 error(message('mbc:cgconstant:InvalidArgument')); end v = set(v,'Value',val); else error(message('mbc:cgconstant:InvalidArgument2')); end v = setname(v , n); if nargin > 2 if isa(prec,'cgprec') c.prec = prec; else error(message('mbc:cgconstant:InvalidArgument3')); end end else error(message('mbc:cgconstant:InvalidArgument4')); end out = class(c , 'cgconstant' , v); end