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

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

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

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

首先新建一个.nb文件。

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

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

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

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

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

% file1.m

file1 starts
...
file1 end

% file2.m

...

 使用以下命令即可

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值