Matlab中的文本和图表转换为LaTeX

5
我希望在Matlab中创建一个“报告生成”脚本。 假设我们有一个Matlab数组,data,并且我们想要将以下内容导出到.tex文件: “data的第一个元素中的信息为X。”随后是X的绘图。 我已经尝试了在Matlab中使用help latex并了解了Matlab文件交换中的各种软件包。然而,到目前为止我还没有看到任何可以允许我导出文本和图形到同一个Matlab脚本并保存为.tex文件的方法。

我曾经遇到过同样的问题,最终我自己编写了报告生成工具,它可以输出.tex文件。因为我只能选择自动生成发布脚本或自动生成.tex文件,而后者给了我更多的选择余地。 - Jonas
4个回答

4

如果您需要,publish函数也许适合您的需求。

创建这个脚本:foo.m

%%
% The information in the first element of data is X.

plot(X)

然后将其发布到LaTeX:

>> publish foo latex

1
发布似乎很有前途,但是使用注释并不是非常动态。我想要导出“X”的内容。假设X = 50,则LaTeX输出将为:“第一个元素中的信息为50”。 - Elpezmuerto
“publish”可以很容易地完成这个任务,只需将X(1)放在自己的一行上(不要放在注释中),它将包含在输出列表中。我认为“publish”是MATLAB世界中通常完成此操作的方式,值得去查看文档。 - rescdsk

4

3

你是否了解matlab2tikz?我在我的博士论文中广泛使用它,尽管只用于导出单个图形。但我想应该很容易地组合MATLAB的LaTeX导出功能。


我以前用过它,但只是像你所说的那样用于导出单个图表。 - Elpezmuerto
但是我认为你最好只导出PNG文件(除非你真的需要支持无限缩放功能) - bobobobo
@bobobobo 也许重要的是图表中的字体与文本中的字体匹配(这在我的论文中是这样的,我想在整个文档中使用Palatino字体。这在MATLAB的PNG导出中是不可能的,只能使用pgfplots实现。) - Habi

0

从Matlab导出图形到.tex文件只需要将图形导出到适当的格式,然后在.tex文件中包含图形文件。像下面列出的代码一样是否适合您的需求?

使用LaTeX生成dvi:

% Include code to write text to .tex file (fid is assumed to be the file id of the .tex file)
print(gcf,'figure1','-depsc','-r100');
fprintf(fid,'\includegraphics[width=4in]{figure1.eps}\n');

使用pdfTeX生成pdf:
% Include code to write text to .tex file (fid is assumed to be the file id of the .tex file)
print(gcf,'figure1','-djpg','-r100');
fprintf(fid,'\\includegraphics[width=4in]{figure1.jpg}\n');

不行,因为它只处理数字,而不是文本和数字。 - Elpezmuerto
@Elpezmuerto:也许这是一个非常具体的修复方法,但对于您的示例可能有效。fprintf(fid,['第一个元素中的信息为' num2str(X(1)) '\n']);这样生成报告/文档非常繁琐。您能详细说明一下您更广泛的需求吗? - arun
我们在报告中有共同的指标,而且重写报告或复制和编辑报告(都很繁琐)不是一个好选择。我想创建一个Matlab脚本来生成报告结果部分的起点。它会列出这些指标并显示相应的图表。我不想每次进行新分析时都使用 matlab2tikz 或类似的东西。我想运行这个脚本,它可以生成所有图形和基本文本。我知道这可能很雄心勃勃。 - Elpezmuerto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接