Home > classes > @pole > pole.m

pole

PURPOSE ^

POLE construct a pole object.

SYNOPSIS ^

function p = pole(varargin)

DESCRIPTION ^

 POLE construct a pole object.
 
 usage: p = pole(f);
 usage: p = pole(f,q);
 
 M Hewitson 02-04-07

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function p = pole(varargin)
0002 
0003 % POLE construct a pole object.
0004 %
0005 % usage: p = pole(f);
0006 % usage: p = pole(f,q);
0007 %
0008 % M Hewitson 02-04-07
0009 %
0010 
0011 ALGONAME = mfilename;
0012 VERSION  = '$Id: pole.html,v 1.1 2007/06/08 14:15:07 hewitson Exp $';
0013 
0014 if nargin == 1
0015   % value or plist or copy
0016   if isnumeric(varargin{1})
0017     if isreal(varargin{1})
0018       p.name    = 'real pole';
0019       p.f       = varargin{1};
0020       p.q       = -1;
0021       p.ri      = p.f;
0022       p.version = VERSION;
0023       p         = class(p, 'pole');
0024     else
0025       p.name     = 'complex pole';
0026       [p.f, p.q] = pri2fq(varargin{1});
0027       p.ri      = [varargin{1} conj(varargin{1})];
0028       p.version = VERSION;
0029       p         = class(p, 'pole');
0030     end
0031   elseif isstruct(varargin{1})
0032     
0033     p = class(varargin{1}, 'pole');
0034     
0035   elseif isa(varargin{1}, 'plist')
0036     
0037     p = poleFromPlist(varargin{1}, VERSION);
0038     
0039   elseif isa(varargin{1}, 'pole')
0040     p = varargin{1};
0041   else
0042     error('### unknown constructor method for pole class.');
0043   end
0044   
0045 else
0046   if isnumeric(varargin{1}) && isnumeric(varargin{2})
0047     p.name    = 'complex pole';
0048     p.f       = varargin{1};
0049     p.q       = varargin{2};
0050     p.ri      = pfq2ri(p.f, p.q);
0051     p.version = VERSION;
0052     p         = class(p, 'pole');
0053     
0054   else
0055     error('### unknown constructor method for pole class.');
0056   end
0057     
0058 end
0059 
0060 %--------------------------------------------------------------------------
0061 % construct a pole from plist
0062 %
0063 function p = poleFromPlist(pl, VERSION) 
0064 
0065 f  = find(pl, 'f');
0066 q  = find(pl, 'q');
0067 ri = find(pl, 'ri');
0068 
0069 
0070 if ~isempty(f)
0071   if ~isempty(q)
0072     % complex pole
0073     p.name    = 'complex pole';
0074     p.f       = f;
0075     p.q       = q;
0076     p.ri      = pfq2ri(p.f, p.q);
0077     p.version = VERSION;
0078     p         = class(p, 'pole');
0079     
0080   else
0081     % real pole
0082     p.name    = 'real pole';
0083     p.f       = f;
0084     p.q       = -1;
0085     p.ri      = p.f;
0086     p.version = VERSION;
0087     p         = class(p, 'pole');
0088     
0089   end
0090 elseif ~isempty(ri)
0091   % complex pole
0092   p.name    = 'complex pole';
0093   [p.f, p.q] = pri2fq(ri);
0094   p.ri      = ri;
0095   p.version = VERSION;
0096   p         = class(p, 'pole');
0097   
0098 else
0099   error('### unknown constructor method for pole class.');
0100 end
0101 
0102 
0103 
0104 % END

Generated on Fri 08-Jun-2007 16:09:11 by m2html © 2003