VAR overloads the var operator for Analysis objects. Compute the variance. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DESCRIPTION: VAR overloads the var operator for Analysis objects. Compute the variance. VAR(ao) is the variance of the values in ao.data. CALL: ao_out = var(ao_in); ao_out = var(ao_in, dim); ao_out = var(ao_in, W, DIM); --> use the parameterlist ao_out = var(ao_in, pl); ao_out = var(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> 'W' [] represent the weight vector W 'dim' 1 or 2 or 3 ... takes the var along the dimension dim tsdata fsdata xydata 'xdata' 't' 'f' 'x' compute the var of the x-axis 'ydata' 'x' 'xx' 'y' compute the var of the y-axis HISTORY: 23-05-2007 Diepholz Creation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0001 function ao_out = var (varargin) 0002 % VAR overloads the var operator for Analysis objects. Compute the variance. 0003 % 0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0005 % 0006 % DESCRIPTION: VAR overloads the var operator for Analysis objects. 0007 % Compute the variance. 0008 % VAR(ao) is the variance of the values in ao.data. 0009 % 0010 % CALL: ao_out = var(ao_in); 0011 % ao_out = var(ao_in, dim); 0012 % ao_out = var(ao_in, W, DIM); --> use the parameterlist 0013 % ao_out = var(ao_in, pl); 0014 % ao_out = var(ao1, pl1, ao_vector, ao_matrix, pl2); 0015 % 0016 % POSSIBLE VALUES: ao_in = [ao2 ao3] 0017 % ao_in = ao_vector 0018 % ao_in = ao_matrix 0019 % 0020 % PARAMETER LIST: <key> <value> <description> 0021 % 'W' [] represent the weight vector W 0022 % 'dim' 1 or 2 or 3 ... takes the var along the 0023 % dimension dim 0024 % tsdata fsdata xydata 0025 % 'xdata' 't' 'f' 'x' compute the var of the x-axis 0026 % 'ydata' 'x' 'xx' 'y' compute the var of the y-axis 0027 % 0028 % HISTORY: 23-05-2007 Diepholz 0029 % Creation 0030 % 0031 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0032 0033 ALGONAME = mfilename; 0034 VERSION = '$Id: var.html,v 1.1 2007/06/08 14:15:03 hewitson Exp $'; 0035 ao_out = []; 0036 pl = plist(); 0037 option = ''; 0038 0039 %% store the input ao's in the vector: ao_set 0040 ao_set = []; 0041 for i=1:nargin 0042 a = varargin{i}; 0043 if isa(a, 'ao') 0044 [m,n] = size(a); 0045 for i = 1:m 0046 for j = 1:n 0047 ao_set = [ao_set a(i,j)]; 0048 end 0049 end 0050 elseif isa(varargin{i}, 'plist') 0051 pl = [pl varargin{i}]; 0052 elseif isnumeric(varargin{i}) 0053 pl = [pl plist(param('dim', varargin{i}))]; 0054 end 0055 end 0056 0057 if ~isempty (pl) 0058 pl = combine(pl); 0059 end 0060 0061 %% go through analysis objects 0062 for j=1:length(ao_set) 0063 a = ao_set(j); 0064 0065 [h, var_data] = single_operation(a.data, 'var', pl); 0066 0067 %% Add the history from the ao object to the history 0068 h = set(h, 'inhists', [a.hist]); 0069 0070 %% Set the var_name to the history 0071 if (j <= nargin) 0072 if (isempty (inputname(j))) 0073 h = set(h, 'invars', cellstr('no var_name')); 0074 else 0075 h = set(h, 'invars', cellstr(inputname(j))); 0076 end 0077 else 0078 h = set(h, 'invars', cellstr('no var_name')); 0079 end 0080 0081 % convert to cdata type 0082 var_x = []; 0083 var_y = []; 0084 0085 do_xdata = find(pl, 'xdata'); 0086 do_ydata = find(pl, 'ydata'); 0087 0088 %% Is no axis entry in the parameter list 0089 %% then set the default axis = xdata 0090 if isempty(do_xdata) && isempty(do_ydata) 0091 do_ydata = 'yes'; 0092 end 0093 0094 %% Get the operation result. It is stored in the individual axis 0095 pl_get_axis = plist([param('xdata', do_xdata) param('ydata', do_ydata)]); 0096 [var_x, var_y] = get_xy_axis(var_data, pl_get_axis); 0097 0098 var_cdata = cdata([var_x var_y]); 0099 var_cdata = set (var_cdata, 'name', var_data.name); 0100 var_cdata = set (var_cdata, 'xunits', var_data.xunits); 0101 var_cdata = set (var_cdata, 'yunits', var_data.yunits); 0102 0103 %% create a new analysis objects 0104 new_ao = a; 0105 new_ao = ao (var_cdata, h); 0106 new_ao = set (new_ao, 'name', sprintf('var(%s)',a.name) ); 0107 0108 ao_out = [ao_out new_ao]; 0109 0110 end 0111 0112 % END