0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 function varargout = display(varargin)
0024
0025
0026 if utils.helper.isinfocall(varargin{:})
0027 varargout{1} = getInfo(varargin{3});
0028 return
0029 end
0030
0031 objs = utils.helper.collect_objects(varargin(:), 'param');
0032
0033 txt = {};
0034
0035 for ii = 1:numel(objs)
0036 banner = sprintf('---- param %d ----', i);
0037 txt{end+1} = banner;
0038
0039
0040 name = objs(ii).key;
0041 v = objs(ii).val;
0042
0043 txt{end+1} = ['key: ' name];
0044
0045
0046
0047
0048 if ischar(v)
0049 MAXLENGTH = 100;
0050 if length(v) > MAXLENGTH
0051 txt{end+1} = ['val: ''' v(1:MAXLENGTH) ' ...'''];
0052 else
0053 txt{end+1} = ['val: ''' v ''''];
0054 end
0055
0056
0057 elseif islogical(v)
0058 if v == true
0059 txt{end+1} = 'val: true';
0060 else
0061 txt{end+1} = 'val: false';
0062 end
0063
0064
0065 elseif isnumeric(v)
0066 sval = '';
0067 if size(v,1) == 1 || size(v,2) == 1
0068 for j=1:min(length(v), 10)
0069 sval = [sval sprintf('%g ', v(j))];
0070 end
0071 if length(v) > 10
0072 sval = [sval '...'];
0073 end
0074 elseif isempty(v)
0075 sval = '[]';
0076 else
0077 sval = sprintf('Matrix [%dx%d]', size(v,1), size(v,2));
0078 end
0079 txt{end+1} = ['val: ' sval];
0080
0081
0082 elseif isa(v, 'sym')
0083 sval = char(v);
0084 txt{end+1} = ['val: ' sval];
0085
0086
0087 elseif isa(v, 'specwin');
0088 txt{end+1} = ['val: specwin'];
0089 txt = [txt char(v)];
0090
0091
0092 elseif isa(v, 'provenance')
0093 txt{end+1} = ['val: ' v.creator '@' v.hostname ' (' v.ip ')'];
0094
0095
0096 elseif isa(v, 'miir') || isa(v, 'mfir')
0097 txt{end+1} = ['val: ' char(v)];
0098
0099
0100 elseif isa(v, 'time') || isa(v, 'timespan') || isa(v, 'timeformat')
0101 txt{end+1} = ['val: ' char(v)];
0102
0103
0104
0105
0106
0107 elseif isa(v, 'ao') || isa(v, 'fsdata') || isa(v, 'tsdata') || ...
0108 isa(v, 'cdata') || isa(v, 'xydata') || isa(v, 'plist') || ...
0109 isa(v, 'param') || isa(v, 'history')
0110 vinfo = whos('v');
0111 txt{end+1} = ['val: ' vinfo.class '-object'];
0112
0113
0114 elseif isa(v, 'pole') || isa(v, 'zero') || isa(v, 'pzmodel')
0115 sval = '';
0116 for j=1:length(v)
0117 sval = [sval ' ' char(v(j))];
0118 end
0119 txt{end+1} = ['val: ' sval];
0120
0121
0122 elseif isstruct(v)
0123
0124 fields = fieldnames(v);
0125 txt{end+1} = 'val: structure';
0126 for ii=1:length(fields)
0127 field = fields{ii};
0128 if ischar(v.(field))
0129 txt{end+1} = [' ' field ': ''' v.(field) ''''];
0130 elseif isnumeric(v.(field))
0131 txt{end+1} = [' ' field ': ' utils.helper.mat2str(v.(field))];
0132 elseif isobject(v.(field))
0133 txt{end+1} = [' ' field ': ' class(v.(field)) '-object'];
0134 else
0135 txt{end+1} = [' ' field ': ' num2str(size(v.(field),1)) 'x' num2str(size(v.(field),2)) ' ' class(v.(field))];
0136 end
0137 end
0138
0139
0140 elseif iscell(v)
0141 sval = '{';
0142 for ii = 1:length(v)
0143 if ischar(v{ii})
0144 sval = [sval '''' v{ii} ''' '];
0145 elseif isnumeric(v{ii})
0146 sval = [sval '[' utils.helper.mat2str(v{ii}) '] '];
0147 elseif isobject(v{ii})
0148 sval = [sval '''' class(v{ii}) ''' '];
0149 else
0150 error('### Do not use a [%s] in a cell array', class(v));
0151 end
0152 end
0153 if length(sval) > 1
0154 sval(end) = '}';
0155 else
0156 sval(end+1) = '}';
0157 end
0158 txt{end+1} = ['val: ' sval];
0159
0160
0161 elseif isjava(v)
0162 txt{end+1} = ['val: ' class(v)];
0163
0164 else
0165 if isobject(v)
0166 txt{end+1} = sprintf('val: <%s>', class(v));
0167 elseif isa(v, 'function_handle')
0168 txt{end+1} = sprintf('val: function handle: %s', func2str(v));
0169 else
0170 txt{end+1} = sprintf('val: <unknown type>');
0171 end
0172 end
0173
0174 banner_end(1:length(banner)) = '-';
0175 txt{end+1} = banner_end;
0176
0177 end
0178
0179
0180 if nargout == 0
0181 for ii=1:length(txt)
0182 disp(txt{ii});
0183 end
0184 elseif nargout == 1
0185 varargout{1} = txt;
0186 end
0187
0188 end
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205 function ii = getInfo(varargin)
0206 if nargin == 1 && strcmpi(varargin{1}, 'None')
0207 sets = {};
0208 pl = [];
0209 else
0210 sets = {'Default'};
0211 pl = getDefaultPlist;
0212 end
0213
0214 ii = minfo(mfilename, 'param', '', 'Output', '$Id: display.m,v 1.34 2008/08/14 15:00:50 hewitson Exp $', sets, pl);
0215 end
0216
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228 function plo = getDefaultPlist()
0229 plo = plist();
0230 end
0231