执行以下代码时,出现此错误model = scipy.sparse.linalg.spsolve(Mt @ M, Mt @ dx)
TypeError: Object arrays are not currently supported
。我想问题是矩阵乘法,尽管M
,Mt
和dx
都不是对象,而是<'scipy.sparse.csr.csr_matrix'>
。奇怪的是,此代码在python 3.6.8版的计算机上可以正常运行,但是由于速度太慢,我将执行转移到外部高性能计算机上,在那里我只复制了python软件包并以相同版本执行了该操作。 / p>
研究了有关此错误的最受欢迎的帖子后,我意识到它们都不能解决我的问题。
# 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)