【发布时间】:2016-10-10 23:47:33
【问题描述】:
我想用 Mathematica 导入很多大文件,然后再执行 NonlinearModelFit。因此,我使用了 Import 功能,如下所述:
files = FileNames["*.dat"];
data = Parallelize[Import[#, "Table"] & /@ files]
问题是这一步非常..非常..慢。 你有什么想法来改进这部分吗? 提前谢谢你。
【问题讨论】:
我想用 Mathematica 导入很多大文件,然后再执行 NonlinearModelFit。因此,我使用了 Import 功能,如下所述:
files = FileNames["*.dat"];
data = Parallelize[Import[#, "Table"] & /@ files]
问题是这一步非常..非常..慢。 你有什么想法来改进这部分吗? 提前谢谢你。
【问题讨论】:
使用
ReadList[#, String]&/@files
或
ReadList[#, Record]&/@files
除了 OP 的评论之外,还有多种访问列的方法,例如。
dataAsStrings = ReadList[#, String]&/@files;
flatterData = Flatten[dataAsStrings, 1];
splitData = StringSplit[#] & /@ flatterData;
column2 = splitData[[All, 2]];
然后也许使用ToExpression 将字符串转换为数值。
【讨论】: