How can I create a LaTeX table from a MATLAB array?

I would like to create a LaTeX table from a MATLAB array.

 Accepted Answer

If you have the Symbolic Math Toolbox, you can use the LATEX function in conjunction with SYM to create a LaTeX table to represent MATLAB data in a table format. For example:
A = [1 2 3; 4 5 6; 7 8 9];
latex_table = latex(sym(A))
The resulting value in latex_table will be:
\left [\begin {array}{ccc} 1&2&3\\\noalign{\medskip}4&5&6\\\noalign{\medskip}7&8&9\end {array}\right ]
This string can then be pasted into any LaTex document.

3 Comments

Instead of vpa, you could also use sympref as it suggests in the latex() documentation.
sympref('FloatingPointOutput',true);
chr = latex(sym(pi))
This is a nice solution. Unfortunately it does not work well with doubles, as sym() will turn the doubles into fractions.
Frieder Wittmann, it does work:
%default with the sympref not set
>> latex(sym(rand))
ans =
'\frac{4411405500742427}{9007199254740992}'
%set it
>> sympref('FloatingPointOutput',1)
ans =
logical
0
%and experiment again
>> latex(sym(rand))
ans =
'0.4456'

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!