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