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.21 2008/02/19 17:23:11 mauro Exp $';
0033 CATEGORY = 'Constructor';
0034 
0035 %%%%%   Is this a 'Params' call?     %%%%%
0036 if  nargin == 2 && isa(varargin{1}, 'cdata') && ischar(varargin{2})
0037   if strcmp(varargin{2}, 'Params')
0038     c = plist();
0039     return
0040   elseif strcmp(varargin{2}, 'Version')
0041     c = VERSION;
0042     return
0043   elseif strcmp(varargin{2}, 'Category')
0044     c = CATEGORY;
0045     return
0046   end
0047 end
0048 
0049 %%%%%%%%%%%%%%%%%%%%%%%%   define cdata properties   %%%%%%%%%%%%%%%%%%%%%%%%%
0050 
0051   function c = init()
0052     c.name    = 'None';
0053     c.y       = [];
0054     c.x       = {};
0055     c.xunits  = 'N/A';
0056     c.yunits  = 'N/A';
0057     c.version = VERSION;
0058     c.created   = time;
0059     c = class(c, 'cdata');
0060   end
0061 
0062 %%%%%%%%%%%%%%%%%%%%%%%%%%   Create cdata object   %%%%%%%%%%%%%%%%%%%%%%%%%%%
0063 
0064 %%%%%%%%%%  val = cdata()   %%%%%%%%%%
0065 % create default cdata object
0066 if nargin == 0
0067   c = init();
0068 
0069 elseif nargin == 1
0070 
0071   %%%%%%%%%%% From File %%%%%%%%%%%%%%%%
0072   if ischar(varargin{1})
0073 
0074     filename = varargin{1};
0075     [path, name, ext, vers] = fileparts(filename);
0076     switch ext
0077       case '.mat'
0078         c = load(filename);
0079         c = c.a;
0080       case '.xml'
0081         root_node = xmlread(filename);
0082         c = ltpda_xmlread(root_node, 'cdata');
0083       otherwise
0084         error('### Unknown file type.');
0085     end
0086   %%%%%%%%%%  val = cdata(cdata)   %%%%%%%%%%
0087   elseif isa(varargin{1}, 'cdata')
0088     c = varargin{1};
0089 
0090     %%%%%%%%%%  val = cdata(struct)   %%%%%%%%%%
0091   elseif isstruct(varargin{1})
0092 
0093     c = init();
0094 
0095     fields = fieldnames(varargin{1});
0096     for ii = 1:length(fields)
0097       field = fields{ii};
0098 
0099       %%% created -> time-object
0100       if strcmp(field, 'created')
0101         created       = varargin{1}.created;
0102         if isstruct(created)
0103           created = time(created);
0104         end
0105         c.created     = created;
0106       %%% All other
0107       else
0108         try
0109           c.(field) = varargin{1}.(field);
0110         catch
0111           error('### The field ''%s'' in the struct is not a cdata property.', field)
0112         end
0113       end
0114     end
0115 
0116     %%%%%%%%%%  val = cdata(plist)   %%%%%%%%%%
0117   elseif isa(varargin{1}, 'plist')
0118 
0119     c = init();
0120 
0121     % get possible parameters
0122     fcn  = find(varargin{1}, 'fcn');
0123 
0124     y    = find(varargin{1}, 'vals');
0125     if isempty(y)
0126       y = find(varargin{1}, 'y');
0127     end
0128 
0129     % check which to use
0130     if ~isempty(fcn)
0131       % do function constructor
0132       y = eval(fcn);
0133     elseif ~isempty(y)
0134       % do vals constructor
0135       %- nothing to do here.
0136     else
0137       error('### unknown constructor method for cdata.');
0138     end
0139 
0140     c.name = fcn;
0141     c.y    = y;
0142 
0143     %%%%%%%%%%  val = cdata(vals)   %%%%%%%%%%
0144     %%%%%%%%%%  val = cdata(y)   %%%%%%%%%%
0145   else
0146 
0147     c      = init();
0148     c.name = 'Data';
0149     c.y    = varargin{1};
0150 
0151   end
0152 
0153 
0154   %%%%%%%%%%  val = cdata(N,val)   %%%%%%%%%%
0155 elseif nargin == 2
0156 
0157   %%%%%%%%%%% From DATABASE
0158   if isa(varargin{1}, 'database')
0159     c = retrieve(varargin{1}, varargin{2:end});
0160   else
0161     c = init();
0162     c.name = 'Constant';
0163     c.y    = ones(varargin{1},1)*varargin{2};
0164   end
0165 else
0166   error('### Unknown number of constructor arguments.');
0167 end
0168 
0169 % check data
0170 % c = checkCdata(c);
0171 end
0172 
0173 
0174 %--------------------------------------------------------------------------
0175 % check vector has right dimensions
0176 function c = checkCdata(c)
0177 
0178 x = c.y;
0179 if size(x, 1) < size(x, 2)
0180   x = x.';
0181 end
0182 
0183 c = set(c, 'y', x);
0184 end
0185

Generated on Fri 07-Mar-2008 15:46:43 by m2html © 2003