view m-toolbox/classes/@ao/det.m @ 52:daf4eab1a51e
database-connection-manager tip
Fix. Default password should be [] not an empty string
author
Daniele Nicolodi <nicolodi@science.unitn.it>
date
Wed, 07 Dec 2011 17:29:47 +0100 (2011-12-07)
parents
f0afece42f48
children
line source
+ − % DET overloads the determinant function for analysis objects.
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ − %
+ − % DESCRIPTION: DET overloads the determinant function for analysis objects.
+ − %
+ − % CALL: a = det(a1) % only with cdata AOs
+ − %
+ − % <a href="matlab:utils.helper.displayMethodInfo('ao', 'det')">Parameters Description</a>
+ − %
+ − % VERSION: $Id: det.m,v 1.41 2011/04/19 18:48:11 ingo Exp $
+ − %
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ −
+ − function varargout = det(varargin)
+ −
+ − % Check if the method was called by another method
+ − callerIsMethod = utils.helper.callerIsMethod;
+ −
+ − % Settings
+ − operatorName = 'det';
+ − 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{:});
+ − end
+ −