Mercurial > repos > public > sbplib
annotate latexTable.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 | 0b1580ed9b8b |
children |
rev | line source |
---|---|
287
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
1 % data -- cell array of numbers |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
2 % leftColstrings -- cell array of strings, for left column |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
3 % topRowStrings -- cell array of strings, for top row |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
4 % dataFormat -- (optional) format specifier, e.g. '%.2f' |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
5 function latexTable(data, leftColStrings, topRowStrings, dataFormat) |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
6 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
7 default_arg('dataFormat','%8.2f') |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
8 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
9 nRows = length(leftColStrings); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
10 nCols = length(topRowStrings); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
11 [m,n] = size(data); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
12 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
13 if(m ~= nRows || n ~=nCols) |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
14 error('Data dimensions must match labels'); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
15 end |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
16 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
17 header = { |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
18 '\begin{table}[H]' |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
19 '\centering' |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
20 ['\begin{tabular}{c' repmat('|c',1,nCols) '} &'] |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
21 headers(topRowStrings) |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
22 '\hline' |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
23 }; |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
24 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
25 footer = { |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
26 '\end{tabular}' |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
27 '\caption{DESCRIPTION.}' |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
28 '\label{table:LABEL}' |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
29 '\end{table}' |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
30 }; |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
31 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
32 nlc = sprintf('\n'); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
33 dataStr = ''; |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
34 for i = 1:nRows |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
35 dataStr = [dataStr leftColStrings{i}]; %#ok<AGROW> |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
36 for j = 1:nCols |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
37 dataStr = [dataStr ' & ' sprintf(dataFormat,data{i,j}) ]; %#ok<AGROW> |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
38 end |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
39 if(i<nRows) |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
40 dataStr = [dataStr ' \\ ' nlc]; %#ok<AGROW> |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
41 end |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
42 end |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
43 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
44 header = strjoin(header', nlc); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
45 footer = strjoin(footer', nlc); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
46 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
47 table = strjoin({header, dataStr, footer}, nlc); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
48 fprintf('%s\n', table); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
49 end |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
50 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
51 |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
52 function s = headers(strings) |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
53 s= [strings{1} ' ']; |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
54 nCols = length(strings); |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
55 for i = 2:nCols |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
56 s = [s '& ' strings{i} ' ']; %#ok<AGROW> |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
57 end |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
58 s = [s ' \\']; |
0b1580ed9b8b
latexTable: similar function that produces latex code.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
59 end |