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

277 views (last 30 days)

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
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
Frieder Wittmann
Frieder Wittmann on 13 Nov 2020
This is a nice solution. Unfortunately it does not work well with doubles, as sym() will turn the doubles into fractions.
Walter Roberson
Walter Roberson on 13 Nov 2020
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)

MathWorks Support

Community Treasure Hunt

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

Start Hunting!