Home > classes > @param > display2.m

display2

PURPOSE ^

DISPLAY display a parameter

SYNOPSIS ^

function txt = display(p, varargin)

DESCRIPTION ^

 DISPLAY display a parameter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: DISPLAY display a parameter

 VERSION: $Id: display2.m,v 1.1 2008/03/05 15:54:05 ingo Exp $

 HISTORY: 30-01-2007 M Hewitson
             Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function txt = display(p, varargin)
0002 % DISPLAY display a parameter
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: DISPLAY display a parameter
0007 %
0008 % VERSION: $Id: display2.m,v 1.1 2008/03/05 15:54:05 ingo Exp $
0009 %
0010 % HISTORY: 30-01-2007 M Hewitson
0011 %             Creation
0012 %
0013 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0014 
0015   VERSION = '$Id: display2.m,v 1.1 2008/03/05 15:54:05 ingo Exp $';
0016   CATEGORY = 'Output';
0017 
0018   % Check if this is a call for parameters
0019   if nargin == 2
0020     if isa(p, 'param') && ischar(varargin{1})
0021       in = char(varargin{1});
0022       if strcmp(in, 'Params')
0023         txt = plist();
0024         return
0025       elseif strcmp(in, 'Version')
0026         txt = VERSION;
0027         return
0028       elseif strcmp(in, 'Category')
0029         txt = CATEGORY;
0030         return
0031       end
0032     end
0033   end
0034 
0035   txt = {};
0036 
0037   for i=1:numel(p)
0038     banner = sprintf('---- param %d ----', i);
0039     txt{end+1} = banner;
0040 
0041     % get key and value
0042     name = get(p(i), 'key');
0043     v    = get(p(i), 'val');
0044 
0045     txt{end+1} = ['key: ' name];
0046 
0047     % convert value for printing
0048     txt = main(txt, 'val: ', v);
0049 
0050     banner_end(1:length(banner)) = '-';
0051     txt{end+1} = banner_end;
0052 
0053   end
0054 
0055   if nargout == 0
0056     char(txt)
0057   end
0058 
0059 end
0060 
0061 function txt = main(txt, prefix, val)
0062 
0063   %%%%%   Structures   %%%%%
0064   if isstruct(val)
0065 
0066     fields = fieldnames(val);
0067     txt{end+1} = [prefix, 'structure'];
0068     for ii=1:length(fields)
0069       field = fields{ii};
0070       prefix(1:end) = ' ';
0071       new_prefix = [prefix field ': '];
0072       txt = main(txt, new_prefix, val.(field));
0073     end
0074 
0075   %%%%%   Cell   %%%%%
0076   elseif iscell(val)
0077 
0078     if prefix(end) == '[', prefix = prefix(1:end-1); end
0079 
0080     txt{end+1} = sprintf('%scell-array {%dx%d}', prefix, size(val,1), size(val,2));
0081     for ii = 1:size(val,1)
0082       for jj = 1:size(val,2)
0083         prefix(1:end) = ' ';
0084         if ischar(val{ii,jj})
0085           new_prefix = sprintf('%s{%d,%d} ', prefix, ii, jj);
0086         else
0087           new_prefix = sprintf('%s{%d,%d} [', prefix, ii, jj);
0088         end
0089         txt = main(txt, new_prefix, val{ii,jj});
0090         if ~ischar(val{ii,jj}) && txt{end}(end) ~= ']';
0091           txt{end}(end+1) = ']';
0092         end
0093       end
0094     end
0095 
0096   else
0097     if numel(val) > 1
0098       txt = atomic_value(txt, prefix, val, true);
0099     else
0100       txt = atomic_value(txt, prefix, val, false);
0101     end
0102   end
0103 end
0104 
0105 
0106 function txt = atomic_value(txt, prefix, val, disp_class_only)
0107 
0108   %%%%%   Character   %%%%%
0109   if ischar(val)
0110     if length(val) > 45
0111       txt{end+1} = [prefix '''' val(1:45) ' ...'''];
0112     else
0113       txt{end+1} = [prefix '''' val ''''];
0114     end
0115 
0116   %%%%%   Logical   %%%%%
0117   elseif islogical(val)
0118     if val == true
0119       txt{end+1} = [prefix 'true'];
0120     else
0121       txt{end+1} = [prefix 'false'];
0122     end
0123 
0124   %%%%%   Numeric   %%%%%
0125   elseif isnumeric(val)
0126     sval = '';
0127     if size(val,1) == 1 || size(val,2) == 1
0128       for j=1:min(length(val), 10)
0129         sval = [sval sprintf('%g ', val(j))];
0130       end
0131       if length(val) > 10
0132         sval = [sval '...'];
0133       end
0134       if sval(end) == ' '
0135         sval = sval(1:end-1);
0136       end
0137     elseif isempty(val)
0138       if prefix(end) == '[', prefix = prefix(1:end-1); end
0139       sval = '[]';
0140     else
0141       sval = sprintf('matrix [%dx%d]', size(val,1), size(val,2));
0142     end
0143     txt{end+1} = [prefix sval];
0144 
0145   %%%%%   Symbolic Object   %%%%%
0146   elseif isa(val, 'sym')
0147     txt{end+1} = [prefix char(val)];
0148 
0149   %%%%%   pole, zero and pole/zero model Object   %%%%%
0150   elseif isa(val, 'pole') || isa(val, 'zero') || isa(val, 'pzmodel')
0151     sval = '';
0152     for j=1:length(val)
0153       sval = [sval char(val(j)) ', '];
0154     end
0155     sval = sval(1:end-2);
0156     txt{end+1} = [prefix sval];
0157 
0158   elseif disp_class_only
0159     if prefix(end) == '[', prefix = prefix(1:end-1); end
0160 
0161     txt{end+1} = sprintf('%s[%dx%d %s]', prefix, size(val,1), size(val,2), class(val));
0162 
0163     %%%%%   Specwin Object   %%%%%
0164   elseif isa(val, 'specwin');
0165     txt{end+1} = [prefix 'spectral window'];
0166     prefix(1:end) = ' ';
0167     txt{end+1} = [prefix 'name     = ' val.name];
0168     txt{end+1} = [prefix 'alpha    = ' num2str(val.alpha)];
0169     txt{end+1} = [prefix 'psll     = ' num2str(val.psll)];
0170     txt{end+1} = [prefix 'rov      = ' num2str(val.rov)];
0171     txt{end+1} = [prefix 'nenbw    = ' num2str(val.nenbw)];
0172     txt{end+1} = [prefix 'w3db     = ' num2str(val.w3db)];
0173     txt{end+1} = [prefix 'flatness = ' num2str(val.flatness)];
0174 
0175   %%%%%   Provenance Object   %%%%%
0176   elseif isa(val, 'provenance')
0177     txt{end+1} = [prefix val.creator '@' val.hostname ' (' val.ip ')'];
0178 
0179   %%%%%   miir and mfir Object   %%%%%
0180   elseif isa(val, 'miir') || isa(val, 'mfir')
0181     txt{end+1} = [prefix char(val)];
0182 
0183   %%%%%   time, timespan and timeformat Object   %%%%%
0184   elseif isa(val, 'time') || isa(val, 'timespan') || isa(val, 'timeformat')
0185     txt{end+1} = [prefix char(val)];
0186 
0187   %%%%%   ao                              %%%%%
0188   %%%%%   cdata, fsdata, tsdata, xydata   %%%%%
0189   %%%%%   plist, param                    %%%%%
0190   %%%%%   history                         %%%%%
0191   elseif isa(val, 'ao')    || isa(val, 'fsdata')  || isa(val, 'tsdata') || ...
0192          isa(val, 'cdata') || isa(val, 'xydata')  || isa(val, 'plist')  || ...
0193          isa(val, 'param') || isa(val, 'history')
0194     vinfo = whos('val');
0195     txt{end+1} = [prefix vinfo.class '-object'];
0196 
0197   %%%%%   JAVA   %%%%%
0198   elseif isjava(val)
0199     txt{end+1} = [prefix class(val)];
0200 
0201   else
0202     if isobject(val)
0203       txt{end+1} = sprintf('%s<%s>', prefix, class(val));
0204     else
0205       txt{end+1} = sprintf('%s<unknown type>', prefix);
0206     end
0207   end
0208 
0209 end
0210 
0211 
0212 
0213 
0214 
0215 
0216 
0217 
0218 
0219

Generated on Mon 31-Mar-2008 21:41:00 by m2html © 2003