在文档中包含一个 Matlab 表

在文档中包含一个 Matlab 表

使用 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(这完全没问题),但这不是必需的,尽管直观上应该将“表格”(或二维结构)放在 atabletabular环境中。第二个选项(“内联”显示数学)是首选。

相关内容