Mercurial > repos > public > sbplib
annotate toString.m @ 1198:2924b3a9b921 feature/d2_compatible
Add OpSet for fully compatible D2Variable, created from regular D2Variable by replacing d1 by first row of D1. Formal reduction by one order of accuracy at the boundary point.
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Fri, 16 Aug 2019 14:30:28 -0700 |
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 |