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
       vals    - data values
       tags    - 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 %       vals    - data values
0012 %       tags    - 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.13 2007/08/31 17:40:08 hewitson Exp $';
0033 
0034 %%%%%%%%%%%%%%%%%%%%%%%%   define cdata properties   %%%%%%%%%%%%%%%%%%%%%%%%%
0035 
0036   function c = init()
0037     c.name    = 'None';
0038     c.vals    = [];
0039     c.tags    = {};
0040     c.xunits  = 'N/A';
0041     c.yunits  = 'N/A';
0042     c.version = VERSION;
0043     c.created   = time;
0044     c = class(c, 'cdata');
0045   end
0046 
0047 %%%%%%%%%%%%%%%%%%%%%%%%%%   Create cdata object   %%%%%%%%%%%%%%%%%%%%%%%%%%%
0048 
0049 %%%%%%%%%%  val = cdata()   %%%%%%%%%%
0050 % create default cdata object
0051 if nargin == 0
0052   c = init();
0053 
0054 elseif nargin == 1
0055 
0056   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0057   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0058     c = fromxml(varargin{1});
0059   %%%%%%%%%%% From File %%%%%%%%%%%%%%%%
0060   elseif ischar(varargin{1})
0061     
0062     filename = varargin{1};
0063     [path, name, ext, vers] = fileparts(filename);
0064     switch ext
0065       case '.mat'
0066         c = load(filename);
0067       case '.xml'
0068         c = xmlparse(cdata, filename);
0069       otherwise
0070         error('### Unknown file type.');
0071     end
0072   %%%%%%%%%%  val = cdata(cdata)   %%%%%%%%%%
0073   elseif isa(varargin{1}, 'cdata')
0074     c = varargin{1};
0075 
0076     %%%%%%%%%%  val = cdata(struct)   %%%%%%%%%%
0077   elseif isstruct(varargin{1})
0078 
0079     c = init();
0080 
0081     fields = fieldnames(varargin{1});
0082     for ii = 1:length(fields)
0083       field = fields{ii};
0084       try
0085         c.(field) = varargin{1}.(field);
0086       catch
0087         error('### The field ''%s'' in the struct is not a cdata property.', field)
0088       end
0089     end
0090 
0091     %%%%%%%%%%  val = cdata(plist)   %%%%%%%%%%
0092   elseif isa(varargin{1}, 'plist')
0093 
0094     c = init();
0095 
0096     % get possible parameters
0097     fcn  = find(varargin{1}, 'fcn');
0098     vals = find(varargin{1}, 'vals');
0099 
0100     % check which to use
0101     if ~isempty(fcn)
0102       % do function constructor
0103       vals = eval(fcn);
0104     elseif ~isempty(vals)
0105       % do vals constructor
0106       %- nothing to do here.
0107     else
0108       error('### unknown constructor method for cdata.');
0109     end
0110 
0111     c.name    = fcn;
0112     c.vals    = vals;
0113 
0114     %%%%%%%%%%  val = cdata(vals)   %%%%%%%%%%
0115   else
0116 
0117     c         = init();
0118     c.name    = 'Data';
0119     c.vals    = varargin{1};
0120 
0121   end
0122 
0123 
0124   %%%%%%%%%%  val = cdata(N,val)   %%%%%%%%%%
0125 elseif nargin == 2
0126 
0127   %%%%%%%%%%% From DATABASE
0128   if isa(varargin{1}, 'database')
0129     c = retrieve(varargin{1}, varargin{2:end});
0130   else
0131     c = init();
0132     c.name    = 'Constant';
0133     c.vals    = ones(varargin{1},1)*varargin{2};
0134   end
0135 else
0136   error('### Unknown number of constructor arguments.');
0137 end
0138 
0139 % check data
0140 % c = checkCdata(c);
0141 end
0142 
0143 
0144 %--------------------------------------------------------------------------
0145 % check vector has right dimensions
0146 function c = checkCdata(c)
0147 
0148 x = c.vals;
0149 if size(x, 1) < size(x, 2)
0150   x = x.';
0151 end
0152 
0153 c = set(c, 'vals', x);
0154 end
0155

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003