comparison toString.m @ 40:54d3ab296ba0

Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 12 Oct 2015 10:38:53 +0200
parents
children 92247f4bad2f
comparison
equal deleted inserted replaced
39:7249f105e67b 40:54d3ab296ba0
1 % Takes a value and returns a string representation of that value.
2 % If syntaxFlag is true, a string with valid matlab syntax is returned.
3 function str = toString(value, syntaxFlag)
4 default_arg('syntaxFlag',false);
5
6 if syntaxFlag
7 error('Not supported yet.')
8 end
9
10 str = value2string(value);
11 end
12
13 function str = value2string(value)
14 if isnumeric(value) || ischar(value)
15 str = mat2str(value);
16 elseif isstruct(value)
17 str = struct2string(value);
18 elseif iscell(value)
19 str = cell2string(value);
20 elseif isa('function_hande')
21 str = func2str(value);
22 else
23 warning('No string representation for class ''%s''', class(value))
24 str = 'NO_STR_REP';
25 end
26 end
27
28 function str = cell2string(c)
29 len = length(c);
30
31 if len == 0
32 str = '{}';
33 return
34 end
35
36 str = '{';
37
38 for i =1:len-1
39 str = [str sprintf('%s, ', value2string(c{i}))];
40 end
41 str = [str sprintf('%s}', value2string(c{end}))];
42 end
43
44 function str = struct2string(s)
45 fn = fieldnames(s);
46
47 if length(fn) == 0
48 str = '{}';
49 return
50 end
51
52 str = '{';
53
54 for i = 1:length(fn) - 1
55 value = s.(fn{i});
56 str = [str sprintf('%s: %s, ',fn{i}, value2string(value))];
57 end
58 value = s.(fn{end});
59 str = [str sprintf('%s: %s}',fn{end}, value2string(value))];
60 end
61