diff --git a/caiman/utils/stats.py b/caiman/utils/stats.py index cf1e3d596..b6f2db4b7 100644 --- a/caiman/utils/stats.py +++ b/caiman/utils/stats.py @@ -329,4 +329,10 @@ def pd_solve(a, b): if info == 0: return dpotrs(L, b)[0] else: - return np.linalg.solve(a, b) + try: + pdsv = np.linalg.solve(a, b) + except LinAlgError : + logger = logging.getLogger("caiman") + logger.warning("Unable to solve directly, using least squares instead.") + pdsv = np.linalg.lstsq(a, b, rcond=None)[0] + return pdsv