


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