使用 Matlab 我得到了一个表格。现在我想将其集成到 LaTeX 文档中。我认为它就像在文档中包含图像一样。
A = [1 2 3; 4 5 6; 7 8 9];
latex_table = latex(sym(A))
latex_table =
\left(\begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6\\ 7 & 8 & 9 \end{array}\right)
\begin{table}
\begin{tabular}{...}
***...latex_table ...***
\end{tabular}
\end{table}
答案1
我认为最简单的方法是在 Matlab 中格式化数据并将fprintf
其保存到文件中。然后您可以将该文件包含在 Latex 文档中。
A = [1 2 3; 4 5 6; 7 8 9];
latex_table = latex(sym(A));
file = fopen('/path/to/output.tex','w');
fprintf(file,'%s',latex_table);
fclose(file);
或者您可以编写一个 Matlab 函数,将 latex 代码作为宏输出。
function [ ] = savetable(varargin)
% SAVETABLE(handle, matrix, file)
handle = char(varargin{1});
latex_table = latex(sym(varargin{2}));
file = fopen(varargin{3}, 'a');
fprintf(file,'\\newcommand{\\%s}{\n\t',handle);
fprintf(file,'\t%s\n}',latex_table);
fclose(file);
例子
您可以使用它在同一个文件中写入几个不同的方程式,如下所示。
A = [1 2 3; 4 5 6; 7 8 9];
B = [10 11 12;13 14 15;16 17 18];
savetable('eqA',A,'equations.tex')
savetable('eqB',B,'equations.tex')
Latex 文档可能看起来像这样:
\documentclass{article}
\input{equations}
\begin{document}
Here we have a nice matrix:
\[
\eqA{}
\]
And here is another one:
\[
\eqB{}
\]
\end{document}
答案2
使用方法如下:
\documentclass{article}
\begin{document}
\begin{table}
\[
\left(\begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6\\ 7 & 8 & 9 \end{array}\right)
\]
\caption{Here is my table.}
\end{table}
This is a table generated in Matlab:
\[
\left(\begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6\\ 7 & 8 & 9 \end{array}\right)
\]
\end{document}
请注意,您要在 a 中插入数学内容table
(这完全没问题),但这不是必需的,尽管直观上应该将“表格”(或二维结构)放在 atable
或tabular
环境中。第二个选项(“内联”显示数学)是首选。