view m-toolbox/classes/@ao/diag.m @ 1:2014ba5b353a
database-connection-manager
Remove old code
author
Daniele Nicolodi <nicolodi@science.unitn.it>
date
Sat, 03 Dec 2011 18:13:55 +0100 (2011-12-03)
parents
f0afece42f48
children
line source
+ − % DIAG overloads the diagonal operator for analysis objects.
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ − %
+ − % DESCRIPTION: DIAG overloads the diagonal operator for analysis objects.
+ − %
+ − % CALL: b = diag (a) % only with data = cdata
+ − % b = diag (a, pl)
+ − %
+ − % INPUTS: a - input analysis object
+ − % pl - parameter list
+ − %
+ − % OUTPUTS: b - output analysis object
+ − %
+ − % <a href="matlab:utils.helper.displayMethodInfo('ao', 'diag')">Parameters Description</a>
+ − %
+ − % VERSION: $Id: diag.m,v 1.43 2011/04/19 18:48:11 ingo Exp $
+ − %
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ −
+ − function varargout = diag(varargin)
+ −
+ − % Check if the method was called by another method
+ − callerIsMethod = utils.helper.callerIsMethod;
+ −
+ − % Settings
+ − operatorName = 'diag';
+ − 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');
+ −
+ − % Check that the data of the AOs is a square matrix
+ − for ii=1:numel(as)
+ − if size(as(ii).data.y,1) ~= size(as(ii).data.y,2)
+ − error('### The y data must be a square matrix.')
+ − end
+ − end
+ −
+ − 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{:});
+ − plout.remove('option');
+ − p = param({'option', 'See help on MATLAB''s <a href="matlab:doc(''diag'')">diag</a>.'}, {1, {0}, paramValue.OPTIONAL});
+ − plout.append(p);
+ − end