执行以下代码时,出现此错误model = scipy.sparse.linalg.spsolve(Mt @ M, Mt @ dx)
TypeError: Object arrays are not currently supported
。我想问题是矩阵乘法,尽管M
,Mt
和dx
不是对象,而是<'scipy.sparse.csr.csr_matrix'>
。奇怪的是,此代码在我的计算机上运行良好,但是由于速度太慢,我通过ssh将执行转移到了外部高性能计算机上,在那里我只复制了python包。
研究了有关此错误的最受欢迎的帖子后,我发现它们都不能解决我的问题。
# len(template) and fixvertex are some large, positive integers
M = scipy.sparse.lil_matrix((len(template)+fixvertex, len(template)))
dx = scipy.sparse.lil_matrix((len(template)+fixvertex, 3))
...
M = np.real(M)
dx = np.real(dx)
Mt = M.T
model = scipy.sparse.linalg.spsolve(Mt @ M, Mt @ dx)