annotate toString.m @ 1037:2d7ba44340d0 feature/burgers1d

Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 18 Jan 2019 09:02:02 +0100
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