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, 'unit')
0088 sval = char(v);
0089 txt{end+1} = ['val: ' sval];
0090
0091
0092 elseif isa(v, 'specwin');
0093 txt{end+1} = ['val: specwin'];
0094 txt = [txt char(v)];
0095
0096
0097 elseif isa(v, 'provenance')
0098 txt{end+1} = ['val: ' v.creator '@' v.hostname ' (' v.ip ')'];
0099
0100
0101 elseif isa(v, 'miir') || isa(v, 'mfir')
0102 txt{end+1} = ['val: ' char(v)];
0103
0104
0105 elseif isa(v, 'time') || isa(v, 'timespan') || isa(v, 'timeformat')
0106 txt{end+1} = ['val: ' char(v)];
0107
0108
0109
0110
0111
0112 elseif isa(v, 'ao') || isa(v, 'fsdata') || isa(v, 'tsdata') || ...
0113 isa(v, 'cdata') || isa(v, 'xydata') || isa(v, 'plist') || ...
0114 isa(v, 'param') || isa(v, 'history')
0115 vinfo = whos('v');
0116 txt{end+1} = ['val: ' vinfo.class '-object'];
0117
0118
0119 elseif isa(v, 'pole') || isa(v, 'zero') || isa(v, 'pzmodel')
0120 sval = '';
0121 for j=1:length(v)
0122 sval = [sval ' ' char(v(j))];
0123 end
0124 txt{end+1} = ['val: ' sval];
0125
0126
0127 elseif isstruct(v)
0128
0129 fields = fieldnames(v);
0130 txt{end+1} = 'val: structure';
0131 for ii=1:length(fields)
0132 field = fields{ii};
0133 if ischar(v.(field))
0134 txt{end+1} = [' ' field ': ''' v.(field) ''''];
0135 elseif isnumeric(v.(field))
0136 txt{end+1} = [' ' field ': ' utils.helper.mat2str(v.(field))];
0137 elseif isobject(v.(field))
0138 txt{end+1} = [' ' field ': ' class(v.(field)) '-object'];
0139 else
0140 txt{end+1} = [' ' field ': ' num2str(size(v.(field),1)) 'x' num2str(size(v.(field),2)) ' ' class(v.(field))];
0141 end
0142 end
0143
0144
0145 elseif iscell(v)
0146 sval = '{';
0147 for ii = 1:length(v)
0148 if ischar(v{ii})
0149 sval = [sval '''' v{ii} ''' '];
0150 elseif isnumeric(v{ii})
0151 sval = [sval '[' utils.helper.mat2str(v{ii}) '] '];
0152 elseif isobject(v{ii})
0153 sval = [sval '''' class(v{ii}) ''' '];
0154 else
0155 error('### Do not use a [%s] in a cell array', class(v));
0156 end
0157 end
0158 if length(sval) > 1
0159 sval(end) = '}';
0160 else
0161 sval(end+1) = '}';
0162 end
0163 txt{end+1} = ['val: ' sval];
0164
0165
0166 elseif isjava(v)
0167 txt{end+1} = ['val: ' class(v)];
0168
0169 else
0170 if isobject(v)
0171 txt{end+1} = sprintf('val: <%s>', class(v));
0172 elseif isa(v, 'function_handle')
0173 txt{end+1} = sprintf('val: function handle: %s', func2str(v));
0174 else
0175 txt{end+1} = sprintf('val: <unknown type>');
0176 end
0177 end
0178
0179 banner_end(1:length(banner)) = '-';
0180 txt{end+1} = banner_end;
0181
0182 end
0183
0184
0185 if nargout == 0
0186 for ii=1:length(txt)
0187 disp(txt{ii});
0188 end
0189 elseif nargout == 1
0190 varargout{1} = txt;
0191 end
0192
0193 end
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207
0208
0209
0210 function ii = getInfo(varargin)
0211 if nargin == 1 && strcmpi(varargin{1}, 'None')
0212 sets = {};
0213 pl = [];
0214 else
0215 sets = {'Default'};
0216 pl = getDefaultPlist;
0217 end
0218
0219 ii = minfo(mfilename, 'param', '', utils.const.categories.output, '$Id: display.m,v 1.36 2008/09/07 10:54:11 hewitson Exp $', sets, pl);
0220 end
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233 function plo = getDefaultPlist()
0234 plo = plist();
0235 end
0236