annotate textTable.m @ 425:e56dbd9e4196 feature/grids

Merge feature/beams
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 07 Feb 2017 16:09:02 +0100
parents fdee7f66a5e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
2 % data -- cell array of numbers
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
3 % leftColstrings -- cell array of strings, for left column
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
4 % topRowStrings -- cell array of strings, for top row
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
5 % dataFormat -- (optional) format specifier, e.g. '%.2f'
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
6 function textTable(data, leftColStrings, topRowStrings, dataFormat)
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
8 default_arg('dataFormat','%.2f')
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
9
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
10 nRows = length(leftColStrings);
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
11 nCols = length(topRowStrings);
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
12 [m,n] = size(data);
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
13
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
14 if(m ~= nRows || n ~=nCols)
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
15 error('Data dimensions must match labels');
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 end
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
18 % Find column widths
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
19 headerLength = 0;
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
20 for i = 1:nCols
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
21 headerLength = max(headerLength, length(topRowStrings{i} ));
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 end
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
23
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
24 dataLength = 0;
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
25 for i = 1:nRows
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
26 for j = 1:nCols
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
27 temp = length(sprintf(dataFormat, data{i,j}));
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
28 dataLength = max(dataLength, temp);
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
29 end
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
30 end
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
31 dataLength = length(sprintf(dataFormat, data{1,1}));
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
32
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
33 colWidth = max(headerLength,dataLength);
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
35 % Print headers
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
36 fprintf(' %*s |',colWidth,'')
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
37 for i = 1:nCols
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
38 fprintf(' %-*s |', colWidth, topRowStrings{i});
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 end
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 fprintf('\n');
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
42 % Print divider
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
43 m_dev = repmat('-',1,colWidth);
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
44 column_dev = repmat('-',1,colWidth);
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 fprintf('-%s-+',m_dev);
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
46 for i = 1:nCols
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 fprintf('-%s-+', column_dev);
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 end
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 fprintf('\n');
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
50
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 % Print each row
286
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
53 dataFormat = ['%*' dataFormat(2:end)];
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
54 for i = 1:nRows
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
55 fprintf(' %*s |',colWidth,leftColStrings{i});
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
56 for j = 1:nCols
fdee7f66a5e9 plainTextTable working.
Martin Almquist <martin.almquist@it.uu.se>
parents: 271
diff changeset
57 fprintf([' ' dataFormat ' |'], colWidth, data{i,j});
271
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 end
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 fprintf('\n');
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 end
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 fprintf('\n');
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63
3c25601f1fe3 Started adding a function for texttables.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 end