Home > classes > @cdata > cdata.m

cdata

PURPOSE ^

CDATA constant data object class constructor.

SYNOPSIS ^

function c = cdata(varargin)

DESCRIPTION ^

 CDATA constant data object class constructor.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: CDATA constant data object class constructor.
              Create a constant data object.

     Properties:
       name    - name of data object
       y       - data values
       x       - cell array: could be one descriptive tag per value
       xunits  - this is used to label the x-axis on plots.
       yunits  - this is used to label the y-axis on plots.
       version - version of the constructor code
       created - creation time of this fsdata object.

     Possible constructors:
       c = cdata()      - creates a blank data object
       c = cdata(pl)    - creates a data object with the given
                          parameter list which contains 'N' and 'Val'
       c = cdata(vals)  - creates a data object with the given
                          data values.
       c = cdata(N,v)   - creates a data object with N samples all of
                          value, v.

 HISTORY: 30-01-2007 Hewitson
             Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function c = cdata(varargin)
0002 % CDATA constant data object class constructor.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: CDATA constant data object class constructor.
0007 %              Create a constant data object.
0008 %
0009 %     Properties:
0010 %       name    - name of data object
0011 %       y       - data values
0012 %       x       - cell array: could be one descriptive tag per value
0013 %       xunits  - this is used to label the x-axis on plots.
0014 %       yunits  - this is used to label the y-axis on plots.
0015 %       version - version of the constructor code
0016 %       created - creation time of this fsdata object.
0017 %
0018 %     Possible constructors:
0019 %       c = cdata()      - creates a blank data object
0020 %       c = cdata(pl)    - creates a data object with the given
0021 %                          parameter list which contains 'N' and 'Val'
0022 %       c = cdata(vals)  - creates a data object with the given
0023 %                          data values.
0024 %       c = cdata(N,v)   - creates a data object with N samples all of
0025 %                          value, v.
0026 %
0027 % HISTORY: 30-01-2007 Hewitson
0028 %             Creation
0029 %
0030 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0031 
0032 VERSION  = '$Id: cdata.m,v 1.16 2007/11/30 19:36:04 ingo Exp $';
0033 
0034 %%%%%   Is this a 'Params' call?     %%%%%
0035 if  nargin == 2 && isa(varargin{1}, 'cdata') && ischar(varargin{2})
0036   if strcmp(varargin{2}, 'Params')
0037     c = plist();
0038     return
0039   elseif strcmp(varargin{2}, 'Version')
0040     c = VERSION;
0041     return
0042   end
0043 end
0044 
0045 %%%%%%%%%%%%%%%%%%%%%%%%   define cdata properties   %%%%%%%%%%%%%%%%%%%%%%%%%
0046 
0047   function c = init()
0048     c.name    = 'None';
0049     c.y       = [];
0050     c.x       = {};
0051     c.xunits  = 'N/A';
0052     c.yunits  = 'N/A';
0053     c.version = VERSION;
0054     c.created   = time;
0055     c = class(c, 'cdata');
0056   end
0057 
0058 %%%%%%%%%%%%%%%%%%%%%%%%%%   Create cdata object   %%%%%%%%%%%%%%%%%%%%%%%%%%%
0059 
0060 %%%%%%%%%%  val = cdata()   %%%%%%%%%%
0061 % create default cdata object
0062 if nargin == 0
0063   c = init();
0064 
0065 elseif nargin == 1
0066 
0067   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0068   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0069     c = fromxml(varargin{1});
0070   %%%%%%%%%%% From File %%%%%%%%%%%%%%%%
0071     elseif ischar(varargin{1})
0072 
0073     filename = varargin{1};
0074     [path, name, ext, vers] = fileparts(filename);
0075     switch ext
0076       case '.mat'
0077         c = load(filename);
0078         c = c.a;
0079       case '.xml'
0080         c = xmlparse(cdata, filename);
0081       otherwise
0082         error('### Unknown file type.');
0083     end
0084   %%%%%%%%%%  val = cdata(cdata)   %%%%%%%%%%
0085   elseif isa(varargin{1}, 'cdata')
0086     c = varargin{1};
0087 
0088     %%%%%%%%%%  val = cdata(struct)   %%%%%%%%%%
0089   elseif isstruct(varargin{1})
0090 
0091     c = init();
0092 
0093     fields = fieldnames(varargin{1});
0094     for ii = 1:length(fields)
0095       field = fields{ii};
0096 
0097       %%% created -> time-object
0098       if strcmp(field, 'created')
0099         created       = varargin{1}.created;
0100         if isstruct(created)
0101           created = time(created);
0102         end
0103         c.created     = created;
0104       %%% All other
0105       else
0106         try
0107           c.(field) = varargin{1}.(field);
0108         catch
0109           error('### The field ''%s'' in the struct is not a cdata property.', field)
0110         end
0111       end
0112     end
0113 
0114     %%%%%%%%%%  val = cdata(plist)   %%%%%%%%%%
0115   elseif isa(varargin{1}, 'plist')
0116 
0117     c = init();
0118 
0119     % get possible parameters
0120     fcn  = find(varargin{1}, 'fcn');
0121 
0122     y    = find(varargin{1}, 'vals');
0123     if isempty(y)
0124       y = find(varargin{1}, 'y');
0125     end
0126 
0127     % check which to use
0128     if ~isempty(fcn)
0129       % do function constructor
0130       y = eval(fcn);
0131     elseif ~isempty(y)
0132       % do vals constructor
0133       %- nothing to do here.
0134     else
0135       error('### unknown constructor method for cdata.');
0136     end
0137 
0138     c.name = fcn;
0139     c.y    = y;
0140 
0141     %%%%%%%%%%  val = cdata(vals)   %%%%%%%%%%
0142     %%%%%%%%%%  val = cdata(y)   %%%%%%%%%%
0143   else
0144 
0145     c      = init();
0146     c.name = 'Data';
0147     c.y    = varargin{1};
0148 
0149   end
0150 
0151 
0152   %%%%%%%%%%  val = cdata(N,val)   %%%%%%%%%%
0153 elseif nargin == 2
0154 
0155   %%%%%%%%%%% From DATABASE
0156   if isa(varargin{1}, 'database')
0157     c = retrieve(varargin{1}, varargin{2:end});
0158   else
0159     c = init();
0160     c.name = 'Constant';
0161     c.y    = ones(varargin{1},1)*varargin{2};
0162   end
0163 else
0164   error('### Unknown number of constructor arguments.');
0165 end
0166 
0167 % check data
0168 % c = checkCdata(c);
0169 end
0170 
0171 
0172 %--------------------------------------------------------------------------
0173 % check vector has right dimensions
0174 function c = checkCdata(c)
0175 
0176 x = c.y;
0177 if size(x, 1) < size(x, 2)
0178   x = x.';
0179 end
0180 
0181 c = set(c, 'y', x);
0182 end
0183

Generated on Tue 22-Jan-2008 10:39:13 by m2html © 2003