Mercurial > repos > public > sbplib
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 |