0001 function p = set(p, varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 VERSION = '$Id: set.m,v 1.7 2007/10/16 17:37:21 ingo Exp $';
0023
0024
0025 if nargin == 2
0026 if isa(p, 'pole') && ischar(varargin{1})
0027 in = char(varargin{1});
0028 if strcmp(in, 'Params')
0029 p = plist();
0030 return
0031 elseif strcmp(in, 'Version')
0032 p = VERSION;
0033 return
0034 end
0035 end
0036 end
0037
0038 if (nargout ~= 0)
0039
0040 propArgin = varargin;
0041 while length(propArgin) >= 2
0042 prop = varargin{1};
0043 val = varargin{2};
0044 propArgin = propArgin(3:end);
0045 switch prop
0046 case 'name'
0047 p.name = val;
0048 case 'version'
0049 p.version = val;
0050 case 'created'
0051 p.created = val;
0052 case 'f'
0053 p.f = val;
0054 p.ri = pfq2ri(p.f, p.q);
0055 case 'q'
0056 p.q = val;
0057 p.ri = pfq2ri(p.f, p.q);
0058 case 'ri'
0059 if length(val) == 1
0060 p.ri = [val conj(val)];
0061 else
0062 p.ri = val;
0063 end
0064 [p.f, p.q] = pri2fq(p.ri);
0065 otherwise
0066 error([val, ' is not a property of pole class']);
0067 end
0068 end
0069
0070 else
0071 if ischar(varargin{2})
0072 error('### please use: %s = set(%s, ''%s'', ''%s'');', ...
0073 inputname(1), ...
0074 inputname(1), ...
0075 varargin{1}, ...
0076 varargin{2});
0077 elseif isnumeric(varargin{2})
0078 error('### please use: %s = set(%s, ''%s'', %d);', ...
0079 inputname(1), ...
0080 inputname(1), ...
0081 varargin{1}, ...
0082 varargin{2});
0083 else
0084 error('### please use: %s = set(%s, key, ''value'');', ...
0085 inputname(1), ...
0086 inputname(1));
0087 end
0088 end