samer@4: function s=tostring(varargin) samer@4: % tostring - Tries to represent values as a sensible string samer@4: % samer@4: % tostring :: A -> string. samer@4: % tostring :: A, B -> string. samer@4: % etc. samer@4: % samer@4: % Multiple inputs are converted to comma-separated string. samer@8: s=catsep(',',map(@tostr,varargin)); samer@7: end samer@4: samer@4: function s=tostr(x) samer@4: if ischar(x), s=x; samer@4: elseif isnumeric(x), samer@4: sz=size(x); samer@42: if prod(sz)<16, s=mat2str(x,5); samer@4: else s=sprintf('%s[%s]',class(x),mat2str(sz)); end samer@4: elseif isa(x,'function_handle'), s=func2str(x); samer@4: if s(1)~='@', s=['@' s]; end samer@4: elseif isa(x,'func'), s=tostring(x); samer@4: else s=['obj:' class(x)]; samer@4: end samer@7: end samer@4: