view m-toolbox/classes/@ao/norm.m @ 21:8be9deffe989
database-connection-manager
Update ltpda_uo.update
author
Daniele Nicolodi <nicolodi@science.unitn.it>
date
Mon, 05 Dec 2011 16:20:06 +0100 (2011-12-05)
parents
f0afece42f48
children
line source
+ − % NORM overloads the norm operator for Analysis Objects.
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ − %
+ − % DESCRIPTION: NORM overloads the norm operator for Analysis Objects.
+ − %
+ − % CALL: b = norm (a,pl) % only with data = cdata
+ − % b = norm (a)
+ − %
+ − % INPUTS: pl - a parameter list
+ − % a - input analysis object
+ − %
+ − % OUTPUTS: See MATLAB's norm.
+ − %
+ − % <a href="matlab:utils.helper.displayMethodInfo('ao', 'norm')">Parameters Description</a>
+ − %
+ − % VERSION: $Id: norm.m,v 1.40 2011/04/19 18:48:11 ingo Exp $
+ − %
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ −
+ − function varargout = norm(varargin)
+ −
+ − % Check if the method was called by another method
+ − callerIsMethod = utils.helper.callerIsMethod;
+ −
+ − % Settings
+ − operatorName = 'norm';
+ − 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('data2D');
+ −
+ − copyObjects = nargout>0;
+ −
+ − % Apply method to all AOs
+ − [out, pl] = ao.applymethod(copyObjects, callerIsMethod, in_names, operatorName, dxFcn, @getInfo, @getDefaultPlist, varargin{:});
+ −
+ − % Clear errors
+ − out.clearErrors(pl);
+ −
+ − % 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{:});
+ −
+ − % Option
+ − p = param({'option', ['A string or value that can be submited, e.g. ''inf'' for<br>'...
+ − 'the infinity norm of the input ao, the largest row<br>'...
+ − 'sum. Options are the same as for MATLAB''s norm.']}, paramValue.EMPTY_STRING);
+ − plout.remove('option');
+ − plout.append(p);
+ − end