Home > classes > @ao > complex.m

complex

PURPOSE ^

COMPLEX overloads the complex operator for Analysis objects.

SYNOPSIS ^

function ao_out = complex(a1, a2)

DESCRIPTION ^

 COMPLEX overloads the complex operator for Analysis objects.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: COMPLEX overloads the complex operator for Analysis objects.
              A3 = COMPLEX(A1,A2) returns the complex result A + Bi, where A and B
              are identically sized real arrays.

 CALL:        ao_out = complex(a1, a2);

 The following call returns a parameter list object that contains the
 default parameter values:

 >> pl = imag(ao, 'Params')

 The following call returns a string that contains the routine CVS version:

 >> version = imag(ao,'Version')

 The following call returns a string that contains the routine category:

 >> category = imag(ao,'Category')

 VERSION:     $Id: complex.m,v 1.8 2008/02/12 08:31:45 mauro Exp $

 HISTORY:     20-08-2007 Diepholz
                 Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function ao_out = complex(a1, a2)
0002 % COMPLEX overloads the complex operator for Analysis objects.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: COMPLEX overloads the complex operator for Analysis objects.
0007 %              A3 = COMPLEX(A1,A2) returns the complex result A + Bi, where A and B
0008 %              are identically sized real arrays.
0009 %
0010 % CALL:        ao_out = complex(a1, a2);
0011 %
0012 % The following call returns a parameter list object that contains the
0013 % default parameter values:
0014 %
0015 % >> pl = imag(ao, 'Params')
0016 %
0017 % The following call returns a string that contains the routine CVS version:
0018 %
0019 % >> version = imag(ao,'Version')
0020 %
0021 % The following call returns a string that contains the routine category:
0022 %
0023 % >> category = imag(ao,'Category')
0024 %
0025 % VERSION:     $Id: complex.m,v 1.8 2008/02/12 08:31:45 mauro Exp $
0026 %
0027 % HISTORY:     20-08-2007 Diepholz
0028 %                 Creation
0029 %
0030 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0031 
0032 ALGONAME = mfilename;
0033 VERSION  = '$Id: complex.m,v 1.8 2008/02/12 08:31:45 mauro Exp $';
0034 CATEGORY = 'Operator';
0035 
0036 % Check if this is a call for parameters
0037 if nargin == 2
0038   if isa(a1, 'ao') && ischar(a2)
0039     in = char(a2);
0040     if strcmp(in, 'Params')
0041       ao_out = plist();
0042       return
0043     elseif strcmp(in, 'Version')
0044       ao_out = VERSION;
0045       return
0046     elseif strcmp(in, 'Category')
0047       ao_out = CATEGORY;
0048       return
0049     end
0050   end
0051 end
0052 
0053 % Check for the same data.
0054 if ~strcmp(class(a1.data), class(a2.data))
0055   error ('### The data class must be the same. (%s <-> %s)', ...
0056           class(a1.data), class(a2.data));
0057 end
0058 
0059 % Check for the same sampe rate
0060 fields = fieldnames(a1.data);
0061 if ismember('fs', fields)
0062   if a1.data.fs ~= a2.data.fs
0063     error('### The sample rate is not the same. Please resaple one of the AO''s');
0064   end
0065 end
0066 
0067 % Check the length of the AO's
0068 [x1,y1] = get_xy_values(a1.data);
0069 [x2,y2] = get_xy_values(a2.data);
0070 if length(x1) ~= length(x2) || length(y1) ~= length(y2)
0071   error ('### The length of the data vectors must be the same.')
0072 end
0073 
0074 complex_x = x1;
0075 complex_y = complex(y1, y2);
0076 
0077 cmd = sprintf('data = %s(complex_x, complex_y);', class(a1.data));
0078 eval(cmd);
0079 
0080 data = set(data, 'name',  'complex');
0081 data = set(data, 'xunits', a1.data.xunits);
0082 data = set(data, 'yunits', a1.data.yunits);
0083 
0084 h = history(ALGONAME, VERSION, plist(), [a1.hist a2.hist]);
0085 h = set(h, 'invars', {inputname(1), inputname(2)});
0086 
0087 ao_out = ao(data, h);
0088 ao_out = setnh(ao_out, 'name', sprintf('complex(%s, %s)', inputname(1), inputname(2)));
0089 
0090 
0091 
0092 
0093 
0094 
0095 
0096 
0097

Generated on Fri 07-Mar-2008 15:46:43 by m2html © 2003