我正在编写一份多信号基线校正的代码。该代码的结构如下:
# for each file in a directory
#read file and populate X vector
temp = baseline_als(x,1000,0.00001)
plt.plot(x-temp)
plt.savefig("newbaseline.png")
plt.close()
baseline_als
函数如下。
def baseline_als(y, lam, p, niter=20):
L = len(y)
D = sparse.csc_matrix(np.diff(np.eye(L), 2))
w = np.ones(L)
for i in xrange(niter):
W = sparse.spdiags(w, 0, L, L)
Z = W + lam * D.dot(D.transpose())
z = spsolve(Z, w*y)
w = p * (y > z) + (1-p) * (y < z)
return z
现在当我把大约100个文件放在一个目录中时,代码能正常运行,虽然需要一些时间,因为复杂度相当高。但是当我有大约10000个文件在我的目录中,然后运行这个脚本,几分钟后系统就会冻结。我不介意执行的延迟,但有没有办法让脚本完成执行呢?