我有一个 Matlab 模型,其中包含一些参数(a=1、b=2、c=3 等)。我希望这些值“自动”出现在我的 LaTeX 文档中,并且当它们在 Matlab 代码中更改时,它们也会出现在 LaTeX 文档中。
我设想将 Matlab 参数值存储在文本文件中,然后由 LaTeX 文档将其合并到文本或表格中。更新 Matlab 参数值、运行代码以更新值文本文件并编译 LaTeX 文档,然后应允许在 LaTeX 文档中更新这些值。
我很确定我不是第一个遇到这种问题的人,但我找不到正确的关键词来得到解决方案。
预先感谢您的帮助。
答案1
感谢 moewe,这里找到了我的问题的解决方案:
Matlab代码示例:
clear all
close all
clc
%Parameters
a=3;
b=-2;
c=3;
% Model
y=a^3+2*b^2+c
%% Tex file writing
str = strcat(['\newcommand*{\parama}{',num2str(a),'}','\newcommand*{\paramb}{',num2str(b),'}','\newcommand*{\paramc}{',num2str(c),'}','\newcommand*{\paramy}{',num2str(y),'}']);
% To escape the backslashes and percent signs:
str = strrep(str,'\','\\');
str = strrep(str,'%','%%');
fileID = fopen('parameters.tex','w');
%Export values to use in LateX
fprintf(fileID,str);
此代码使用当前使用的参数值生成 LaTeX 文件 parameters.tex。
使用参数值的最小 LaTeX 示例:
\documentclass[12pt]{standalone}
\input{parameters.tex}
\begin{document}
The Matlab model uses $a=\parama$, $b=\paramb$ and $c=\paramc$ to calculate $y=a^3+2b^2+c=\paramy$
\end{document}
在 LaTeX 中生成:
我刚刚发现一个类似的例子,尝试在 Matlab 中处理 LaTeX 中使用的特殊字符(\、%,等等),如下所示:https://stackoverflow.com/questions/11523555/write-string-as-it-is-to-a-file-in-matlab