view m-toolbox/classes/@ao/sum.m @ 11:9174aadb93a5
database-connection-manager
Add LTPDA Repository utility functions into utils.repository
author
Daniele Nicolodi <nicolodi@science.unitn.it>
date
Mon, 05 Dec 2011 16:20:06 +0100 (2011-12-05)
parents
f0afece42f48
children
line source
+ − % SUM computes the sum of the data in the AO.
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ − %
+ − % DESCRIPTION: SUM computes the sum of the data in the AO.
+ − %
+ − % CALL: ao_out = sum(ao_in);
+ − % ao_out = sum(ao_in, pl);
+ − %
+ − % <a href="matlab:utils.helper.displayMethodInfo('ao', 'sum')">Parameters Description</a>
+ − %
+ − % VERSION: $Id: sum.m,v 1.34 2011/04/19 18:48:11 ingo Exp $
+ − %
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ −
+ − function varargout = sum(varargin)
+ −
+ − % Check if the method was called by another method
+ − callerIsMethod = utils.helper.callerIsMethod;
+ −
+ − % Settings
+ − operatorName = 'sum';
+ − dxFcn = [];
+ −
+ − if callerIsMethod
+ − in_names = {};
+ − else
+ − % Collect input variable names
+ − in_names = cell(size(varargin));
+ − for ii = 1:nargin,in_names{ii} = inputname(ii);end
+ −
+ − % Check if this is a call for the minfo object
+ − if utils.helper.isinfocall(varargin{:})
+ − varargout{1} = getInfo(varargin{3});
+ − return
+ − end
+ −
+ − end
+ −
+ − % Here we are forced to collect objects so that we can check that each ao
+ − % is the correct type and shape for doing det.
+ − [as, dummy, rest] = utils.helper.collect_objects(varargin, 'ao', in_names);
+ −
+ − % Check for the correct data objects: Throw an error for data2D objects.
+ − as.checkDataType('data3D');
+ −
+ − copyObjects = nargout>0;
+ −
+ − % Apply method to all AOs
+ − [out, pl] = ao.applymethod(copyObjects, callerIsMethod, in_names, operatorName, dxFcn, @getInfo, @getDefaultPlist, varargin{:});
+ −
+ − % set outputs
+ − if isa(out, 'ao')
+ − out = fixAxisData(out, pl);
+ − % Clear errors
+ − out.clearErrors(pl);
+ − end
+ −
+ − % set outputs
+ − varargout = utils.helper.setoutputs(nargout, out);
+ −
+ − end
+ −
+ − %--------------------------------------------------------------------------
+ − % Get Info Object
+ − %--------------------------------------------------------------------------
+ − function ii = getInfo(varargin)
+ − ii = minfo.getInfoAxis(mfilename, @getDefaultPlist, varargin);
+ − end
+ −
+ − %--------------------------------------------------------------------------
+ − % Get Default Plist
+ − %--------------------------------------------------------------------------
+ −
+ − function plout = getDefaultPlist(set)
+ − persistent pl;
+ − persistent lastset;
+ − if ~exist('pl', 'var') || isempty(pl) || ~strcmp(lastset, set)
+ − pl = buildplist(set);
+ − lastset = set;
+ − end
+ − plout = pl;
+ − end
+ −
+ − function plout = buildplist(varargin)
+ − plout = plist.getDefaultAxisPlist(varargin{:});
+ − end
+ −