annotate toString.m @ 547:3da69d57e684 feature/grids

Add assertion in inputs to grid.Cartesian
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 23 Aug 2017 11:21:19 +0200
parents e1a59aafe99c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
40
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 % Takes a value and returns a string representation of that value.
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 % If syntaxFlag is true, a string with valid matlab syntax is returned.
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 function str = toString(value, syntaxFlag)
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 default_arg('syntaxFlag',false);
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 if syntaxFlag
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 error('Not supported yet.')
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 end
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 str = value2string(value);
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 end
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 function str = value2string(value)
44
92247f4bad2f Added toString function.
Jonatan Werpers <jonatan@werpers.com>
parents: 40
diff changeset
14 if isnumeric(value) || ischar(value) || islogical(value)
40
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 str = mat2str(value);
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 elseif isstruct(value)
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 str = struct2string(value);
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 elseif iscell(value)
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 str = cell2string(value);
123
edccf4ba788b Fixed spelling.
Jonatan Werpers <jonatan@werpers.com>
parents: 44
diff changeset
20 elseif isa(value,'function_handle')
40
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 str = func2str(value);
128
f7629720f1b7 toString: added support for symbolic expressions
Jonatan Werpers <jonatan@werpers.com>
parents: 123
diff changeset
22 elseif isa(value,'sym')
f7629720f1b7 toString: added support for symbolic expressions
Jonatan Werpers <jonatan@werpers.com>
parents: 123
diff changeset
23 str = char(value);
40
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 else
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 warning('No string representation for class ''%s''', class(value))
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 str = 'NO_STR_REP';
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 end
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 end
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 function str = cell2string(c)
146
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
31 if isempty(c)
40
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 str = '{}';
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 return
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 end
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35
146
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
36 [n, m] = size(c);
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
37
40
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 str = '{';
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39
146
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
40 for i = 1:n-1
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
41 for j = 1:m-1
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
42 str = [str sprintf('%s, ', value2string(c{i,j}))];
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
43 end
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
44 str = [str sprintf('%s; ', value2string(c{i,end}))];
40
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 end
146
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
46
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
47 for j = 1:m-1
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
48 str = [str sprintf('%s, ', value2string(c{end,j}))];
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
49 end
2ccfe80e9b58 toString: Now allows 2d cell arrays of strings.
Jonatan Werpers <jonatan@werpers.com>
parents: 128
diff changeset
50 str = [str sprintf('%s}', value2string(c{end,end}))];
40
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 end
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 function str = struct2string(s)
466
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
54 if isscalar(s)
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
55 str = structScalar2string(s);
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
56 else
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
57 str = structArray2string(s);
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
58 end
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
59 end
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
60
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
61 function str = structScalar2string(s)
40
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 fn = fieldnames(s);
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 if length(fn) == 0
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 str = '{}';
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 return
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 end
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69 str = '{';
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 for i = 1:length(fn) - 1
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72 value = s.(fn{i});
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 str = [str sprintf('%s: %s, ',fn{i}, value2string(value))];
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 end
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 value = s.(fn{end});
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76 str = [str sprintf('%s: %s}',fn{end}, value2string(value))];
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 end
54d3ab296ba0 Added Dictionary class. Added string conversions for a bunch of types. Deprecated some replaced functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78
466
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
79 function str = structArray2string(s)
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
80 fn = fieldnames(s);
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
81
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
82 if length(fn) == 0
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
83 str = '{}';
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
84 return
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
85 end
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
86
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
87 stringArray = cell(length(s)+1, length(fn)+1);
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
88
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
89 stringArray(1,2:end) = fn;
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
90
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
91 for i = 1:length(s)
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
92 stringArray{i+1,1} = i;
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
93 for j = 1:length(fn)
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
94 valueStr = value2string(s(i).(fn{j}));
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
95 stringArray{i+1,j+1} = valueStr;
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
96 end
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
97 end
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
98
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
99 tt = TextTable(stringArray);
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
100 tt.fmtArray(2:end, 1) = {'%d'};
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
101 tt.vertDiv = [1];
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
102 tt.horzDiv = [1];
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
103 str = tt.toString();
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
104 end
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
105
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
106
e1a59aafe99c Add structArray to toString()
Jonatan Werpers <jonatan@werpers.com>
parents: 146
diff changeset
107