view m-toolbox/classes/@ao/svd.m @ 48:16aa66670d74
database-connection-manager
Fix LTPDA Preferences tooltip
author
Daniele Nicolodi <nicolodi@science.unitn.it>
date
Tue, 06 Dec 2011 19:07:27 +0100 (2011-12-06)
parents
f0afece42f48
children
line source
+ − % SVD overloads the svd (singular value decomposition) function for analysis objects.
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ − %
+ − % DESCRIPTION: SVD overloads the singular value decomposition for analysis objects.
+ − %
+ − % CALL: u = svd(ao_in, pl)
+ − %
+ − % INPUTS: ao_in - input analysis object
+ − % pl - a parameter list
+ − %
+ − % OUTPUTS: See MATLAB's svd
+ − %
+ − % <a href="matlab:utils.helper.displayMethodInfo('ao', 'svd')">Parameters Description</a>
+ − %
+ − % VERSION: $Id: svd.m,v 1.39 2011/04/19 18:48:11 ingo Exp $
+ − %
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ −
+ − function varargout = svd(varargin)
+ −
+ − % Check if the method was called by another method
+ − callerIsMethod = utils.helper.callerIsMethod;
+ −
+ − % Settings
+ − operatorName = 'svd';
+ − 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{:});
+ −
+ − plout.remove('option');
+ − p = param({'option', ['A string or value that can be submitted, e.g. ''econ'''...
+ − 'to produce economy size decomposition.<br>'...
+ − 'Options are the same as for the matlab function.']}, paramValue.EMPTY_STRING);
+ − plout.append(p);
+ − end
+ −