欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用mathematica合并多文档内的文本

程序员文章站 2022-04-01 07:55:51
...

在进行数学建模比赛时,遇到了这样的一个问题。

已有多个matlab文件.m在同一个目录下,现要把它们全部附在论文的附录里面。以文本格式储存,在每个文件的开头写上关于此文件名的注释。

显然,将每一个文件先打开,然后逐个进行复制的行为比较繁杂。现提供一种基于mathematica语言的方法:

首先新建一个.nb文件。

然后获取该目录下所有文件名,并筛选掉非.m格式的:

dtr="C:\\..."(*需要获取内容的文件的目录*)
[email protected];
list=Select[FileNames[], StringMatchQ[#, "*.m"] &]

再接着获取每一个文件的内容

ctt = Import[dtr <> "\\" <> #, "Text"] & /@ list;

最后把它们拼接在一起,得到按照这样的格式的一个.txt文件

% file1.m

file1 starts
...
file1 end

% file2.m

...

 使用以下命令即可

az = "% " <> list[[#]] <> "

" <> ctt[[#]] <> "
" & /@ Range[[email protected]];
Export["az.txt", az];
SystemOpen["az.txt"]

az.txt便是我们最终要的文件了。将其附在论文后面即可。

亲测的唯一缺点是有时候会出现乱码,尤其是对于使用更早版本的matlab写的.m文件。但是本人不太熟悉matlab,如果有基于matlab的方式,请不吝赐教,丢个链接也可。

如果有更简洁、方便的方法,或对本文有所建议等,欢迎指出。