annotate TextTable.m @ 958:72cd29107a9a feature/poroelastic

Temporary changes in multiblock.DiffOp. Change traction operators in Elastic2dvariable to be true boundary operators. But adjoint FD conv test fails for dirichlet BC so need to debug!
author Martin Almquist <malmquist@stanford.edu>
date Wed, 05 Dec 2018 18:58:10 -0800
parents 11a39b274260
children f30eafd6d4dc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
1 classdef TextTable < handle
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
2 properties
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
3 data
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
4 fmtArray
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
5 vertDiv
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
6 horzDiv
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 end
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
9 methods
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
10 function obj = TextTable(data, vertDiv, horzDiv)
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
11 default_arg('vertDiv', []);
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
12 default_arg('horzDiv', []);
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
13
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
14 obj.data = data;
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
15 obj.vertDiv = vertDiv;
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
16 obj.horzDiv = horzDiv;
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
17
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
18 obj.fmtArray = cell(size(data));
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
19 obj.formatAll('%s');
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
20
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
21 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
22
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
23 function n = nRows(obj)
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
24 n = size(obj.data, 1);
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
25 end
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
26
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
27 function n = nCols(obj)
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
28 n = size(obj.data, 2);
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
29 end
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
30
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
31 function print(obj)
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
32 disp(obj.toString());
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
33 end
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
34
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
35 function formatAll(obj, fmt)
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
36 obj.fmtArray = cell(size(obj.data));
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
37 obj.fmtArray(:,:) = {fmt};
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
38 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
39
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
40 function formatCell(obj, i, j, fmt)
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
41 obj.fmtArray{i,j} = fmt;
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
42 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
43
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
44 function formatRow(obj, i, fmt)
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
45 obj.fmtArray(i,:) = {fmt};
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
46 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
47
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
48 function formatColumn(obj, j, fmt)
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
49 obj.fmtArray(:,j) = {fmt};
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
50 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
51
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
52 function widths = getWidths(obj)
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
53 strArray = obj.getStringArray();
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
54
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
55 widths = zeros(1,obj.nCols);
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
56 for j = 1:obj.nCols
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
57 for i = 1:obj.nRows
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
58 widths(j) = max(widths(j), length(strArray{i,j}));
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
59 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
60 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
61 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
62
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
63 function str = toString(obj)
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
64 strArray = obj.getStringArray();
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
65 widths = obj.getWidths();
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
66
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
67 str = '';
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
68
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
69 N = size(strArray, 2);
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
70
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
71 % First horzDiv
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
72 if isDiv(0, obj.horzDiv, N);
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
73 str = [str, obj.getHorzDiv(widths)];
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
74 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
75
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
76 for i = 1:obj.nRows
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
77 str = [str, TextTable.rowToString(strArray(i,:), widths, obj.vertDiv)];
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
78
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
79 % Interior horzDiv
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
80 if isDiv(i, obj.horzDiv, N)
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
81 str = [str, obj.getHorzDiv(widths)];
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
82 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
83 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
84 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
85
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
86 function str = getHorzDiv(obj, widths)
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
87 str = TextTable.rowToString(cell(1,obj.nCols), widths, obj.vertDiv);
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
88 str(find(' ' == str)) = '-';
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
89 str(find('|' == str)) = '+';
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
90 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
91
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
92 function strArray = getStringArray(obj)
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
93 assert(all(size(obj.data) == size(obj.fmtArray)), 'Sizes of format matrix and data matrix do not match.')
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
94 strArray = cell(size(obj.data));
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
95
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
96 for i = 1:obj.nRows
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
97 for j = 1:obj.nCols
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
98 strArray{i,j} = sprintf(obj.fmtArray{i,j}, obj.data{i,j});
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
99 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
100 end
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
101 end
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
102 end
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
103
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
104 methods (Static)
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
105 function str = rowToString(strs, widths, vertDiv)
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
106 N = length(strs);
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
107
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
108 % First vertDiv
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
109 if isDiv(0, vertDiv, N)
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
110 prefix = '| ';
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
111 else
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
112 prefix = ' ';
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
113 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
114
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
115 % Pad strings
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
116 for i = 1:N
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
117 strs{i} = sprintf('%*s', widths(i), strs{i});
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
118 end
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
119
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
120 % Column delimiters
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
121 delims = cell(1,N-1);
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
122 for i = 1:length(delims)
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
123 if isDiv(i, vertDiv, N);
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
124 delims{i} = '| ';
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
125 else
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
126 delims{i} = ' ';
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
127 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
128 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
129
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
130 if isDiv(N, vertDiv, N);
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
131 suffix = '|';
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
132 else
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
133 suffix = '';
465
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
134 end
a5cebdaad10b Implement a simple but general text table
Jonatan Werpers <jonatan@werpers.com>
parents: 286
diff changeset
135
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
136 str = [prefix, strjoin(strs, delims), suffix, sprintf('\n')];
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
137 end
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
138 end
659
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
139 end
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
140
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
141 function b = isDiv(i, div, N)
11a39b274260 Make data more flexible, add print method, allow negative devider index
Jonatan Werpers <jonatan@werpers.com>
parents: 465
diff changeset
142 b = ismember(i, div) || ismember(i, N+div+1);
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
143 end