MEAN overloads the mean operator for Analysis objects. Compute the mean value. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DESCRIPTION: MEAN overloads the mean operator for Analysis objects. Compute the mean value. MEAN(ao) is the mean value of the elements in ao.data. CALL: ao_out = mean(ao_in); ao_out = mean(ao_in, dim); ao_out = mean(ao_in, pl); ao_out = mean(ao1, pl1, ao_vector, ao_matrix, pl2); POSSIBLE VALUES: ao_in = [ao2 ao3] ao_in = ao_vector ao_in = ao_matrix PARAMETER LIST: <key> <value> <description> 'dim' 1 or 2 or 3 ... takes the mean along the dimension dim tsdata fsdata xydata 'xdata' 't' 'f' 'x' compute the mean of the x-axis 'ydata' 'x' 'xx' 'y' compute the mean of the y-axis The following call returns a parameter list object that contains the default parameter values: >> pl = mean(ao, 'Params') The following call returns a string that contains the routine CVS version: >> version = mean(ao,'Version') The following call returns a string that contains the routine category: >> category = mean(ao,'Category') HISTORY: 23-05-2007 Diepholz Creation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0001 function ao_out = mean (varargin) 0002 % MEAN overloads the mean operator for Analysis objects. Compute the mean value. 0003 % 0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0005 % 0006 % DESCRIPTION: MEAN overloads the mean operator for Analysis objects. 0007 % Compute the mean value. 0008 % MEAN(ao) is the mean value of the elements in ao.data. 0009 % 0010 % CALL: ao_out = mean(ao_in); 0011 % ao_out = mean(ao_in, dim); 0012 % ao_out = mean(ao_in, pl); 0013 % ao_out = mean(ao1, pl1, ao_vector, ao_matrix, pl2); 0014 % 0015 % POSSIBLE VALUES: ao_in = [ao2 ao3] 0016 % ao_in = ao_vector 0017 % ao_in = ao_matrix 0018 % 0019 % PARAMETER LIST: <key> <value> <description> 0020 % 'dim' 1 or 2 or 3 ... takes the mean along the 0021 % dimension dim 0022 % tsdata fsdata xydata 0023 % 'xdata' 't' 'f' 'x' compute the mean of the x-axis 0024 % 'ydata' 'x' 'xx' 'y' compute the mean of the y-axis 0025 % 0026 % The following call returns a parameter list object that contains the 0027 % default parameter values: 0028 % 0029 % >> pl = mean(ao, 'Params') 0030 % 0031 % The following call returns a string that contains the routine CVS version: 0032 % 0033 % >> version = mean(ao,'Version') 0034 % 0035 % The following call returns a string that contains the routine category: 0036 % 0037 % >> category = mean(ao,'Category') 0038 % 0039 % HISTORY: 23-05-2007 Diepholz 0040 % Creation 0041 % 0042 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0043 0044 VERSION = '$Id: mean.html,v 1.14 2008/03/31 10:27:34 hewitson Exp $'; 0045 CATEGORY = 'Operator'; 0046 0047 ao_out = []; 0048 0049 %% Check if this is a call for parameters 0050 if nargin == 2 0051 if isa(varargin{1}, 'ao') && ischar(varargin{2}) 0052 in = char(varargin{2}); 0053 if strcmp(in, 'Params') 0054 ao_out = getDefaultPL(); 0055 return 0056 elseif strcmp(in, 'Version') 0057 ao_out = VERSION; 0058 return 0059 elseif strcmp(in, 'Category') 0060 ao_out = CATEGORY; 0061 return 0062 end 0063 end 0064 end 0065 0066 %% Collect input ao's, plist's and ao variable names 0067 in_names = {}; 0068 ps = plist(); 0069 for ii = 1:nargin 0070 in_names{end+1} = inputname(ii); 0071 0072 if isnumeric(varargin{ii}) 0073 ps = [ps plist(param('dim', varargin{ii}))]; 0074 end 0075 end 0076 0077 [ao_set, pl, invars] = collect_inputs(varargin, in_names); 0078 0079 pl = combine(pl, ps); 0080 0081 %% go through analysis objects 0082 for j=1:numel(ao_set) 0083 a = ao_set(j); 0084 0085 [h, mean_data] = single_operation(a.data, 'mean', pl); 0086 0087 %% Add the history from the ao object to the history 0088 h = set(h, 'inhists', [a.hist]); 0089 0090 %% Set the var_name to the history 0091 h = set(h, 'invars', cellstr(invars{j})); 0092 0093 % convert to cdata type 0094 mean_x = []; 0095 mean_y = []; 0096 0097 do_xdata = find(pl, 'xdata'); 0098 do_ydata = find(pl, 'ydata'); 0099 0100 %% Is no axis entry in the parameter list 0101 %% then set the default axis = xdata 0102 if isempty(do_xdata) && isempty(do_ydata) 0103 do_ydata = 'yes'; 0104 end 0105 0106 %% Get the operation result. It is stored in the individual axis 0107 pl_get_axis = plist([param('xdata', do_xdata) param('ydata', do_ydata)]); 0108 [mean_x, mean_y] = get_xy_values(mean_data, pl_get_axis); 0109 0110 if ~isempty(do_xdata) && ~isempty(do_ydata) 0111 mean_cdata = cdata([mean_x mean_y]); 0112 elseif ~isempty(do_xdata) 0113 mean_cdata = cdata(mean_x); 0114 else 0115 mean_cdata = cdata(mean_y); 0116 end 0117 0118 mean_cdata = set (mean_cdata, 'name', mean_data.name); 0119 mean_cdata = set (mean_cdata, 'xunits', mean_data.xunits); 0120 mean_cdata = set (mean_cdata, 'yunits', mean_data.yunits); 0121 0122 %% create a new analysis objects 0123 new_ao = ao (mean_cdata, h); 0124 new_ao = setnh(new_ao, 'name', sprintf('mean(%s)',invars{j}) ); 0125 0126 ao_out = [ao_out new_ao]; 0127 0128 end 0129 0130 % Reshape the ouput to the same size of the input 0131 ao_out = reshape(ao_out, size(ao_set)); 0132 0133 0134 %% Get default params 0135 function pl_default = getDefaultPL() 0136 0137 pl_default = plist([param('dim', '') 0138 param('xdata', '') 0139 param('ydata', '')]); 0140 0141 % END