


SET set an analysis object property without recording the history.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
DESCRIPTION: SET set an analysis object property without recording the history.
CALL: ao = setnh(ao, 'name', 'name');
ao = setnh(ao, 'provenance', provenance-object);
ao = setnh(ao, 'description','description');
ao = setnh(ao, 'hist', history-object);
ao = setnh(ao, 'data', data);
ao = setnh(ao, 'mfile', mfile);
ao = setnh(ao, 'mfilename', 'mfilename');
ao = setnh(ao, 'mdlfile', 'mdlfile');
ao = setnh(ao, 'mdlfilename','mdlfilename');
ao = setnh(ao, 'version', 'cvs-version');
ao = setnh(ao, 'created', time-object);
ao = setnh(ao, plist-object); --> plist-object with key/value paies
ao = setnh(ao, 'fs', fs); --> ao.data.fs = fs;
ao = setnh(ao, 't0', t0); --> ao.data.t0 = t0;
ao = setnh(ao, 'xunits', 'xunits'); --> ao.data.xunits = 'xunits';
ao = setnh(ao, 'yunits', 'yunits'); --> ao.data.xunits = 'yunits';
The following call returns a parameter list object that contains the
default parameter values:
>> pl = ao(ao, 'Params')
VERSION: $Id: setnh.m,v 1.3 2007/11/14 16:30:18 ingo Exp $
HISTORY: 30-01-07 M Hewitson
Creation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


0001 function ao = setnh(ao, varargin) 0002 % SET set an analysis object property without recording the history. 0003 % 0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0005 % 0006 % DESCRIPTION: SET set an analysis object property without recording the history. 0007 % 0008 % CALL: ao = setnh(ao, 'name', 'name'); 0009 % ao = setnh(ao, 'provenance', provenance-object); 0010 % ao = setnh(ao, 'description','description'); 0011 % ao = setnh(ao, 'hist', history-object); 0012 % ao = setnh(ao, 'data', data); 0013 % ao = setnh(ao, 'mfile', mfile); 0014 % ao = setnh(ao, 'mfilename', 'mfilename'); 0015 % ao = setnh(ao, 'mdlfile', 'mdlfile'); 0016 % ao = setnh(ao, 'mdlfilename','mdlfilename'); 0017 % ao = setnh(ao, 'version', 'cvs-version'); 0018 % ao = setnh(ao, 'created', time-object); 0019 % ao = setnh(ao, plist-object); --> plist-object with key/value paies 0020 % ao = setnh(ao, 'fs', fs); --> ao.data.fs = fs; 0021 % ao = setnh(ao, 't0', t0); --> ao.data.t0 = t0; 0022 % ao = setnh(ao, 'xunits', 'xunits'); --> ao.data.xunits = 'xunits'; 0023 % ao = setnh(ao, 'yunits', 'yunits'); --> ao.data.xunits = 'yunits'; 0024 % 0025 % The following call returns a parameter list object that contains the 0026 % default parameter values: 0027 % 0028 % >> pl = ao(ao, 'Params') 0029 % 0030 % VERSION: $Id: setnh.m,v 1.3 2007/11/14 16:30:18 ingo Exp $ 0031 % 0032 % HISTORY: 30-01-07 M Hewitson 0033 % Creation 0034 % 0035 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0036 0037 VERSION = '$Id: setnh.m,v 1.3 2007/11/14 16:30:18 ingo Exp $'; 0038 0039 % Check if this is a call for parameters or for the cvs-version number 0040 if nargin == 2 0041 if isa(ao, 'ao') && ischar(varargin{1}) 0042 in = char(varargin{1}); 0043 if strcmp(in, 'Params') 0044 ao = getDefaultPL(); 0045 return 0046 elseif strcmp(in, 'Version') 0047 ao = VERSION; 0048 return 0049 end 0050 end 0051 end 0052 0053 if (nargout ~= 0) 0054 0055 % hist_pl = plist(); 0056 fields = fieldnames(ao); 0057 propArgin = varargin; 0058 0059 if nargin >= 2 && isa(propArgin{1}, 'plist') 0060 pl = propArgin{1}; 0061 propArgin = {}; 0062 for ii = 1:nparams(pl) 0063 propArgin{end+1} = pl.params(ii).key; 0064 propArgin{end+1} = pl.params(ii).val; 0065 end 0066 end 0067 0068 0069 while length(propArgin) >= 2 0070 prop = propArgin{1}; 0071 val = propArgin{2}; 0072 propArgin = propArgin(3:end); 0073 0074 if ~ismember(prop, [fields; 't0'; 'fs'; 'xunits'; 'yunits']) 0075 error(['### ', prop, ' is not a valid analysis object property.']); 0076 else 0077 0078 %% For all analysis objects (ao can be a vector or a matrix) 0079 for jj = 1:numel(ao) 0080 0081 %% Also pass through some parameters to data object 0082 if strcmp(prop, 'fs') 0083 d = ao(jj).data; 0084 if isa(d, 'tsdata') || isa(d, 'fsdata') 0085 d = setnh(d, 'fs', val); 0086 else 0087 error('### No ''fs'' property for this data type'); 0088 end 0089 ao(jj).data = d; 0090 0091 elseif strcmp(prop, 't0') 0092 0093 d = ao(jj).data; 0094 if isa(d, 'tsdata') 0095 d = setnh(d, 't0', val); 0096 else 0097 error('### The data object is not from the class tsdata'); 0098 end 0099 ao(jj).data = d; 0100 0101 elseif strcmp(prop, 'xunits') 0102 d = ao(jj).data; 0103 d = set(d, 'xunits', val); 0104 ao(jj).data = d; 0105 0106 elseif strcmp(prop, 'yunits') 0107 d = ao(jj).data; 0108 d = set(d, 'yunits', val); 0109 ao(jj).data = d; 0110 0111 else 0112 ao(jj).(prop) = val; 0113 end 0114 0115 end % for 0116 0117 end 0118 0119 % hist_pl = append(hist_pl, prop, val); 0120 0121 end 0122 0123 % for jj = 1:numel(ao) 0124 % h = history('setnh', VERSION, hist_pl); 0125 % h = setnh(h, 'inhists', ao(jj).hist); 0126 % h = setnh(h, 'invars', cellstr(inputname(1))); 0127 % 0128 % ao(jj).hist = h; 0129 % end 0130 0131 else 0132 if ischar(varargin{2}) 0133 error('### please use: %s = setnh(%s, ''%s'', ''%s'');', ... 0134 inputname(1), ... 0135 inputname(1), ... 0136 varargin{1}, ... 0137 varargin{2}); 0138 elseif isnumeric(varargin{2}) 0139 error('### please use: %s = setnh(%s, ''%s'', %d);', ... 0140 inputname(1), ... 0141 inputname(1), ... 0142 varargin{1}, ... 0143 varargin{2}); 0144 else 0145 error('### please use: %s = setnh(%s, ''key'', ''value'');', ... 0146 inputname(1), ... 0147 inputname(1)); 0148 end 0149 0150 end 0151 0152 0153 % Get default params 0154 function plo = getDefaultPL() 0155 0156 plo = plist();