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.12 2008/02/23 19:49:11 hewitson Exp $';
0019 CATEGORY = 'Helper';
0020
0021
0022 if nargin == 2
0023 if isa(pl, 'plist') && ischar(varargin{1})
0024 in = varargin{1};
0025 if strcmp(in, 'Params')
0026 pstr = plist();
0027 return
0028 elseif strcmp(in, 'Version')
0029 pstr = VERSION;
0030 return
0031 elseif strcmp(in, 'Category')
0032 pstr = CATEGORY;
0033 return
0034 end
0035 end
0036 end
0037
0038 if ~isempty(pl.plist)
0039 pstr = sprintf('plist(%s)', string(pl.plist));
0040 else
0041 np = length(pl.params);
0042 pstr = '';
0043 if np > 0
0044 pstr = ['plist('];
0045 for j=1:np
0046 p = pl.params(j);
0047 if ischar(p.val)
0048 pstr = [pstr '''' p.key ''', ''' char(p.val) ''', '];
0049 elseif isnumeric(p.val)
0050 pstr = [pstr '''' p.key ''', ' ltpda_mat2str(p.val) ', '];
0051 elseif isa(p.val, 'ao')
0052 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0053 elseif isa(p.val, 'history')
0054 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0055 elseif isa(p.val, 'miir')
0056 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0057 elseif isa(p.val, 'mfir')
0058 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0059 elseif isa(p.val, 'specwin')
0060 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0061 elseif isa(p.val, 'pole') || isa(p.val, 'zero') || isa(p.val, 'pzmodel')
0062 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0063 elseif isa(p.val, 'time')
0064 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0065 elseif isa(p.val, 'plist')
0066 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0067 elseif isa(p.val, 'timeformat')
0068 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0069 elseif isa(p.val, 'timespan')
0070 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0071 elseif isa(p.val, 'param')
0072 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0073 elseif isa(p.val, 'provenance')
0074 pstr = [pstr '''' p.key ''', ' string(p.val) ', '];
0075 elseif iscell(p.val)
0076 val_str = ['{ '];
0077 for ii = 1:numel(p.val)
0078 cell_val = p.val{ii};
0079 if ischar(cell_val)
0080 val_str = [val_str '''' p.val{ii} ''', ' ];
0081 elseif isnumeric(cell_val)
0082 val_str = [val_str ltpda_mat2str(p.val{ii}) ', ' ];
0083 elseif isobject(cell_val)
0084 val_str = [val_str string(p.val{ii}) ', ' ];
0085 else
0086 error('### Unknown object in cell array');
0087 end
0088 end
0089 val_str = val_str(1:end-2);
0090 val_str = [val_str ' }'];
0091 pstr = [pstr '''' p.key ''', ' val_str ', '];
0092 elseif isa(p.val, 'cdata') || isa(p.val, 'fsdata') || ...
0093 isa(p.val, 'tsdata')|| isa(p.val, 'xydata') || ...
0094 isa(p.val, 'xyzdata')
0095 pstr = [pstr '''' p.key ''', ' class(p.val) '(), '];
0096 else
0097 error('!!! Can not handle the class [%s].', class(p.val));
0098 end
0099 end
0100
0101
0102 if ~isempty(pstr)
0103 pstr = pstr(1:end-2);
0104 end
0105 pstr = [pstr ')'];
0106 else
0107 pstr = 'plist()';
0108 end
0109 end
0110
0111