Home > m > etc > ao_fcn_template.m

ao_fcn_template

PURPOSE ^

FOO overloads the foo function for Analysis Objects.

SYNOPSIS ^

function varargout = foo(varargin)

DESCRIPTION ^

 FOO overloads the foo function for Analysis Objects.
 
 Usage:      foo(a)
         b = foo(a,pl)
 
 Inputs:
   a  - analysis object(s)
   pl - parameter list(s)
 
 Outputs:
   b  - output AOs
 
 Parameters:
   
 
 M Hewitson 24-05-07
 
 $Id: ao_fcn_template.html,v 1.1 2007/06/08 14:15:09 hewitson Exp $

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function varargout = foo(varargin)
0002 
0003 % FOO overloads the foo function for Analysis Objects.
0004 %
0005 % Usage:      foo(a)
0006 %         b = foo(a,pl)
0007 %
0008 % Inputs:
0009 %   a  - analysis object(s)
0010 %   pl - parameter list(s)
0011 %
0012 % Outputs:
0013 %   b  - output AOs
0014 %
0015 % Parameters:
0016 %
0017 %
0018 % M Hewitson 24-05-07
0019 %
0020 % $Id: ao_fcn_template.html,v 1.1 2007/06/08 14:15:09 hewitson Exp $
0021 %
0022 
0023 %---------------- Standard history variable
0024 
0025 ALGONAME = mfilename;
0026 VERSION  = '$Id: ao_fcn_template.html,v 1.1 2007/06/08 14:15:09 hewitson Exp $';
0027 
0028 %---------------- capture input variable names, AOs, and plists
0029 invars = {};
0030 as     = [];
0031 ps     = [];
0032 for j=1:nargin
0033   if isa(varargin{j}, 'ao')
0034     invars = [invars cellstr(inputname(j))];
0035   end  
0036   if isa(varargin{j}, 'ao')
0037     as = [as varargin{j}];
0038   end
0039   if isa(varargin{j}, 'plist')
0040     ps = [ps varargin{j}];
0041   end
0042 end
0043 
0044 % produce one plist
0045 if isa(ps, 'plist')
0046   pl = combine(ps, getDefaultPL());
0047 else
0048   pl = getDefaultPL();
0049 end
0050 
0051 % number of input AOs
0052 na = length(as);
0053 
0054 % Get parameters
0055 N = find(pl, 'N');
0056 X = find(pl, 'X');
0057 
0058 %---------------- Loop over input AOs
0059 
0060 % Initialise output
0061 bs = [];
0062 
0063 % start looping
0064 for j=1:na
0065   a = as(j);
0066   
0067   % get data
0068   adata = getAOdata(a);
0069   
0070   % Do some analysis
0071   y = adata;
0072   x = 1:length(y);
0073   
0074   %-------- Build output AOs
0075   
0076   % make a new xydata object, for example
0077   xy = xydata(x, y);
0078   xy = set(xy, 'name', sprintf('foo(%s)', a.data.name));
0079   xy = set(xy, 'xunits', a.data.yunits);
0080   xy = set(xy, 'yunits', 'Blah');
0081 
0082   % make a new history object
0083   h = history(ALGONAME, VERSION, pl, a.hist);
0084   h = set(h, 'invars', invars);
0085 
0086   % make output analysis object
0087   b = ao(xy, h);
0088   
0089   % name for this object
0090   if isempty(invars{j})
0091     n1 = a.name;
0092   else
0093     n1 = invars{j};
0094   end
0095   b  = set(b, 'name', sprintf('foo(%s)', n1));
0096   bs = [bs b];
0097     
0098   
0099 end
0100 
0101 %---------------- Set outputs
0102 varargout{1} = bs;
0103 
0104 %--------------------------------------------------------------------------
0105 % Get default params
0106 function plo = getDefaultPL()
0107 
0108 disp('* creating default plist...');
0109 plo = plist();
0110 plo = append(plo, param('N', 10));
0111 plo = append(plo, param('X', []));
0112 disp('* done.');
0113 
0114 
0115 % END

Generated on Fri 08-Jun-2007 16:09:11 by m2html © 2003