


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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


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