0001 function pstr = string(pl, varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 VERSION = '$Id: string.m,v 1.7 2008/01/02 17:58:51 ingo Exp $';
0019
0020
0021 if nargin == 2
0022 if isa(pl, 'plist') && ischar(varargin{1})
0023 in = varargin{1};
0024 if strcmp(in, 'Params')
0025 pstr = plist();
0026 return
0027 elseif strcmp(in, 'Version')
0028 pstr = VERSION;
0029 return
0030 end
0031 end
0032 end
0033
0034 np = length(pl.params);
0035 pstr = '';
0036 if np > 0
0037 pstr = ['plist('];
0038 for j=1:np
0039 p = pl.params(j);
0040 if ischar(p.val)
0041 pstr = [pstr '''' p.key ''', ''' char(p.val) ''', '];
0042 elseif isnumeric(p.val)
0043 pstr = [pstr '''' p.key ''', ' ltpda_mat2str(p.val) ', '];
0044 elseif isa(p.val, 'ao')
0045 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0046 elseif isa(p.val, 'history')
0047 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0048 elseif isa(p.val, 'miir')
0049 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0050 elseif isa(p.val, 'mfir')
0051 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0052 elseif isa(p.val, 'specwin')
0053 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0054 elseif isa(p.val, 'pole') || isa(p.val, 'zero') || isa(p.val, 'pzmodel')
0055 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0056 elseif isa(p.val, 'time')
0057 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0058 elseif iscell(p.val)
0059 val_str = ['{ '];
0060 for ii = 1:numel(p.val)
0061 cell_val = p.val{ii};
0062 if ischar(cell_val)
0063 val_str = [val_str '''' p.val{ii} ''', ' ];
0064 elseif isnumeric(cell_val)
0065 val_str = [val_str ltpda_mat2str(p.val{ii}) ', ' ];
0066 else
0067 error('### Unknown object in cell array');
0068 end
0069 end
0070 val_str = val_str(1:end-2);
0071 val_str = [val_str ' }'];
0072 pstr = [pstr '''' p.key ''', ' val_str ', '];
0073 else
0074 warning('!!! unknown parameter type. Can''t convert to string.');
0075 end
0076 end
0077
0078
0079 if ~isempty(pstr)
0080 pstr = pstr(1:end-2);
0081 end
0082 pstr = [pstr ')'];
0083 end
0084
0085