MPOWER implements power operator for analysis objects. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DESCRIPTION: MPOWER implements power operator for analysis objects. computes b^c where b is an analysis object and c is either another analysis object or a constant. CALL: a = a1^2 a = a1^a2 % with a2.data.vals = scalar VERSION: $Id: mpower.m,v 1.11 2007/11/02 13:17:41 ingo Exp $ The following call returns a parameter list object that contains the default parameter values: >> pl = mpower(ao, 'Params') HISTORY: 01-02-07 M Hewitson Creation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0001 function b = mpower(varargin) 0002 % MPOWER implements power operator for analysis objects. 0003 % 0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0005 % 0006 % DESCRIPTION: MPOWER implements power operator for analysis objects. 0007 % computes b^c where b is an analysis object and c is either 0008 % another analysis object or a constant. 0009 % 0010 % CALL: a = a1^2 0011 % a = a1^a2 % with a2.data.vals = scalar 0012 % 0013 % VERSION: $Id: mpower.m,v 1.11 2007/11/02 13:17:41 ingo Exp $ 0014 % 0015 % The following call returns a parameter list object that contains the 0016 % default parameter values: 0017 % 0018 % >> pl = mpower(ao, 'Params') 0019 % 0020 % HISTORY: 01-02-07 M Hewitson 0021 % Creation 0022 % 0023 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0024 0025 ALGONAME = mfilename; 0026 VERSION = '$Id: mpower.m,v 1.11 2007/11/02 13:17:41 ingo Exp $'; 0027 0028 %% Check if this is a call for parameters 0029 if nargin == 2 0030 if isa(varargin{1}, 'ao') && ischar(varargin{2}) 0031 in = char(varargin{2}); 0032 if strcmp(in, 'Params') 0033 b = getDefaultPL(); 0034 return 0035 elseif strcmp(in, 'Version') 0036 b = VERSION; 0037 return 0038 end 0039 end 0040 end 0041 0042 %% capture input variable names 0043 invars = {}; 0044 for j=1:nargin 0045 iname = inputname(j); 0046 if isempty(iname) & isnumeric(varargin{j}) 0047 iname = num2str(varargin{j}); 0048 elseif isempty(iname) & ischar(varargin{j}) 0049 iname = varargin{j}; 0050 end 0051 invars = [invars cellstr(iname)]; 0052 end 0053 0054 op = '^'; 0055 0056 [a1,a2,do] = aooperate(varargin, op); 0057 0058 %--------- create output AO 0059 0060 % make a new history object 0061 h = history(ALGONAME, VERSION, plist(), [a1.hist a2.hist]); 0062 h = set(h, 'invars', invars); 0063 0064 % get names for output 0065 if isempty(char(invars{1})) 0066 n1 = a1.name; 0067 else 0068 n1 = char(invars{1}); 0069 end 0070 if isempty(char(invars{2})) 0071 n2 = a2.name; 0072 else 0073 n2 = char(invars{2}); 0074 end 0075 0076 % make output analysis object 0077 % op = op(2:end); 0078 b = ao(do, h); 0079 b = setnh(b, 'name', sprintf('%s %s %s', n1, op, n2)); 0080 0081 0082 %% Get default params 0083 function pl_default = getDefaultPL() 0084 0085 pl_default = plist(); 0086 0087 0088 % END