Latex变量自动化:直接从Stata和MATLAB为Latex编写变量
我正在从事这个项目,它需要在服务器上分析一个大的(>50GB)数据集,包括Stata和MATLAB。这两个部分都是必需的,我不能只使用其中一个 我的最终目标是生成一个名为Latex变量自动化:直接从Stata和MATLAB为Latex编写变量,matlab,latex,stata,Matlab,Latex,Stata,我正在从事这个项目,它需要在服务器上分析一个大的(>50GB)数据集,包括Stata和MATLAB。这两个部分都是必需的,我不能只使用其中一个 我的最终目标是生成一个名为commands.tex的.tex文件,如下所示: \newcommand{\var1}{val1} \newcommand{\var2}{val2} % MATLAB file matlab_file.m on DD/MM/YYYY \newcommand{\var3}{val3} % Stata fil
commands.tex
的.tex文件,如下所示:
\newcommand{\var1}{val1}
\newcommand{\var2}{val2} % MATLAB file matlab_file.m on DD/MM/YYYY
\newcommand{\var3}{val3} % Stata file stata_file.m on DD/MM/YYYY
...
sysuse auto
reg price weight
define_variable PriceWeight = _b[weight], format(%4.2f)
其中变量按字母顺序排列,每个值很可能是一个数字。请注意,注释中的命令将帮助我跟踪生成值的位置。该文件的用途是,在序言之后,我可以通过以下方式使用LaTeX:
<preamble>
\input{commands.tex}
\begin{document}
Variable 1 has a value of \var1 and variable 2 has a value of \var2.
\end{document}
我希望代码能做到的是:
\newcommand{\PriceWeight}
在commands.tex
中不存在,则它会将其值添加到列表中,并保留字母顺序program define define_variable
syntax anything = X, [format(string)]
<other code>
end
clc; clear;
PriceWeight = 3
define_variable('PriceWeight',PriceWeight,format)
同样,它会自动转到单个文件并相应地更新它。非常感谢您提供的任何帮助。基于您的评论,并假设您包含所有相关变量的文件并不庞大,我建议将您的数据从Stata获取到Matlab,并根据需要更新您的变量(如果您有一个名称列表,请使用
exist
或strcmp
等函数).一个快速的谷歌搜索给了我
为了便于处理,您可能需要创建一个单元格(我称之为C
),其中一列包含所有变量名,另一列包含标量值
然后,一旦你组装了所有变量,你就可以按字母顺序对你的单元格进行排序,并用.tex文件将其写入文件。当然,你可以写一个.tex文件,然后用类似的东西在单元格上迭代
fprintf(fID,'\newcommand{\%s}{%f} ',C{i,1},C{i,2})
我希望这是可以理解和帮助的。每个报告中除了要插入的变量外,还有多少文本?此外,您还讨论了插入和更新变量,这应该多久发生一次。您希望经常获得commands.tex的更新版本吗?一般来说,我不确定是否将tex文件视为某种类型的d文件ata银行是理想的,如果我正确理解您想要做什么,我想使用随机样本运行do文件,生成一些变量,然后运行Matlab文件,生成一些其他变量。基于此编写一份报告,然后使用完整样本再次运行所有内容,这可能需要几天时间,一旦我有过完整样本,就可以根据完整样本重新编译事实上,我不在乎它是tex文件还是csv或txt文件,只要我以后可以从中生成latex变量。