MATLAB 命令窗口输出

MATLAB 命令窗口输出

我希望 Matlab 代码输出打印在我的 LaTeX 文件中。

最好的、最有效的方法是什么?将结果导出为 .txt,然后在 LaTeX 中调用它,还是有其他 (更好的) 方法来实现这一点?

答案1

您几乎已经概述了工作流程。我假设您指的是命令窗口中显示的输出。

  1. 让 MATLAB 写入文本文件,参见例如此功能
  2. 然后,将此文本文件包含到您的文档中。这可以通过一个简单的\input命令来完成,尽管我建议将 MATLAB 生成的文本处理得与处理源代码一样。有很多选择可以将源文件包含在 latex 中,例如列表包

这是一个最小的例子。将两个文件放在同一个目录中,运行 MATLAB 脚本 - 也适用于 octave - 然后运行 ​​latex。

diary on您可能会注意到,只有在和之间生成的输出diary off才会出现在日志文件中,该文件稍后会包含在 latex 文档中。这样您就可以控制将生成的输出的哪些部分放入文档中。


使 MATLAB 更新 latex 文件:

如果您将 eg 添加system('latexmk --pdf matlabLog')到 MATLAB 脚本的末尾,则 MATLAB 将执行传递给命令的字符串中指定的命令system。在此示例中,我使用latexmk命令,可以找到这里。或者,您也可以执行 shell 脚本或任何其他构建魔法。


以下是一些最简单的 MATLAB 代码:

disp("This is a simple test")

% uncomment to erase log
% by default diary appends new data
%delete("matlabDiary.txt")

diary("matlabDiary.txt")
diary on

x = 5;
y = 3;

disp(["x + y = ",num2str(x+y)])

diary off


disp(["x - y = ",num2str(x-y)])

diary on


disp(["x * y = ",num2str(x*y)])

diary off

还有一些最少的乳胶代码:

\documentclass[11pt,a4paper]{article} 
\usepackage{listings}

\begin{document}
\section{test}

bla bla

\lstinputlisting{matlabDiary.txt}

\end{document}

相关内容