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 if (nargout ~= 0)
0022
0023 propArgin = varargin;
0024 while length(propArgin) >= 2
0025 prop = varargin{1};
0026 val = varargin{2};
0027 propArgin = propArgin(3:end);
0028 switch prop
0029 case 'name'
0030 p.name = val;
0031 case 'version'
0032 p.version = val;
0033 case 'f'
0034 p.f = val;
0035 p.ri = pfq2ri(p.f, p.q);
0036 case 'q'
0037 p.q = val;
0038 p.ri = pfq2ri(p.f, p.q);
0039 case 'ri'
0040 if length(val) == 1
0041 p.ri = [val conj(val)];
0042 else
0043 p.ri = val;
0044 end
0045 [p.f, p.q] = pri2fq(p.ri);
0046 otherwise
0047 error([val, ' is not a property of pole class']);
0048 end
0049 end
0050
0051 else
0052 if ischar(varargin{2})
0053 error('### please use: %s = set(%s, ''%s'', ''%s'');', ...
0054 inputname(1), ...
0055 inputname(1), ...
0056 varargin{1}, ...
0057 varargin{2});
0058 elseif isnumeric(varargin{2})
0059 error('### please use: %s = set(%s, ''%s'', %d);', ...
0060 inputname(1), ...
0061 inputname(1), ...
0062 varargin{1}, ...
0063 varargin{2});
0064 else
0065 error('### please use: %s = set(%s, key, ''value'');', ...
0066 inputname(1), ...
0067 inputname(1));
0068 end
0069 end