Home > classes > @pzmodel > pzmodel.m

pzmodel

PURPOSE ^

PZMODEL constructor for pzmodel class.

SYNOPSIS ^

function pzm = pzmodel(varargin)

DESCRIPTION ^

 PZMODEL constructor for pzmodel class.
 
 usage: pzm = pzmodel(g, p, z) % construct from gain, poles, zeros
        pzm = pzmodel(g, p, z, 'name') 
        pzm = pzmodel(pl);     % construct from plist
 
 Parameters:
   'gain'  - model gain
   'poles' - vector of pole objects
   'zeros' - vector of zero objects
   'name'  - name of model
 
 M Hewitson 03-04-07
 
 $Id: pzmodel.html,v 1.1 2007/06/08 14:15:07 hewitson Exp $

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function pzm = pzmodel(varargin)
0002 
0003 % PZMODEL constructor for pzmodel class.
0004 %
0005 % usage: pzm = pzmodel(g, p, z) % construct from gain, poles, zeros
0006 %        pzm = pzmodel(g, p, z, 'name')
0007 %        pzm = pzmodel(pl);     % construct from plist
0008 %
0009 % Parameters:
0010 %   'gain'  - model gain
0011 %   'poles' - vector of pole objects
0012 %   'zeros' - vector of zero objects
0013 %   'name'  - name of model
0014 %
0015 % M Hewitson 03-04-07
0016 %
0017 % $Id: pzmodel.html,v 1.1 2007/06/08 14:15:07 hewitson Exp $
0018 %
0019 
0020 ALGONAME = mfilename;
0021 VERSION  = '$Id: pzmodel.html,v 1.1 2007/06/08 14:15:07 hewitson Exp $';
0022 
0023 if nargin == 0
0024   
0025   gain  = 0;
0026   poles = [];
0027   zeros = [];
0028   name = 'pzmodel';
0029   
0030 elseif nargin == 1
0031   pl = varargin{1};
0032   
0033   if isstruct(pl)
0034     pzm.name  = pl.name;
0035     pzm.gain  = pl.gain;
0036     pzm.poles = pl.poles;
0037     pzm.zeros = pl.zeros;
0038     pzm = class(pzm, 'pzmodel');    
0039     return
0040     
0041   else
0042     
0043     gain  = find(pl, 'gain');
0044     poles = find(pl, 'poles');
0045     zeros = find(pl, 'zeros');
0046     name  = find(pl, 'name');
0047     if isempty(name)
0048       name = 'pzmodel';
0049     end
0050   end
0051   
0052 elseif nargin >= 3
0053   a  = varargin{1};
0054   if isa(a, 'ao')
0055     gain = a.data(1);
0056   else
0057     gain = a;
0058   end
0059   poles = varargin{2};
0060   zeros = varargin{3};
0061   if nargin == 4
0062     name = varargin{4};
0063   else
0064     name = 'pzmodel';
0065   end
0066   
0067 else
0068   error('### incorrect number of inputs.');
0069 end
0070 
0071 % construct pz model object
0072 pzm.name  = name;
0073 pzm.gain  = gain;
0074 pzm.poles = poles;
0075 pzm.zeros = zeros;
0076 pzm = class(pzm, 'pzmodel');
0077 
0078 
0079 % END

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