Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For loop 在mathematica中处理目录中的大量文件_For Loop_Memory_Memory Management_Wolfram Mathematica - Fatal编程技术网

For loop 在mathematica中处理目录中的大量文件

For loop 在mathematica中处理目录中的大量文件,for-loop,memory,memory-management,wolfram-mathematica,For Loop,Memory,Memory Management,Wolfram Mathematica,我在一个目录中保存了大量数据文件(.csv)。现在我想为每个文件拟合和评估几个参数。由于此目录中有超过300.000个文件,mathematica无法运行我的脚本。我尝试的第一次尝试是将目录设置为此文件夹,然后尝试通过“For循环”单独移植每个文件(对于i=1,i以下方法将所有csv中的所有数据加载到名为data的函数变量中。因此,如果csv名为file1.csv和file2.csv,则它们的数据将加载到名为data[“file1.csv”]和data[“file2.csv”的变量中。)。然后,

我在一个目录中保存了大量数据文件(.csv)。现在我想为每个文件拟合和评估几个参数。由于此目录中有超过300.000个文件,mathematica无法运行我的脚本。我尝试的第一次尝试是将目录设置为此文件夹,然后尝试通过“For循环”单独移植每个文件(对于i=1,i以下方法将所有csv中的所有数据加载到名为
data
的函数变量中。因此,如果csv名为
file1.csv
file2.csv
,则它们的数据将加载到名为
data[“file1.csv”]
data[“file2.csv”的变量中。)
。然后,例如,将每个CSV第一列中的数据读入名为
xvalues
的变量,并将每个CSV第二列中的数据读入名为
yvalues
的变量

SetDirectory["C:\\Users\\yourname\\datadirectory"];
files = FileNames["*.csv"];
(data[#] = Import[#]) & /@ files;

xvalues = yvalues = {};

(xvalues = Join[xvalues, data[#][[All, 1]]]) & /@ files;
xvalues = Flatten[xvalues];

(yvalues = Join[yvalues, data[#][[All, 2]]]) & /@ files;
yvalues = Flatten[yvalues];
然后可以计算拟合

fit = Fit[Transpose[{xvalues, yvalues}], {1, x}, x]

300000个文件太多了。尽管如此,在看不到代码的情况下,我们仍然不清楚Mathematica为何会崩溃。也许在处理完每个文件后,您没有关闭它,并且您的代码没有可用的文件句柄。也许……嗯,代码是空闲的。