Python 获取错误消息';线性误差:奇异矩阵';在使用Numpy时使用满秩矩阵
我使用的是Python 3.7和Numpy 1.16.5 我尝试使用以下代码:Python 获取错误消息';线性误差:奇异矩阵';在使用Numpy时使用满秩矩阵,python,numpy,Python,Numpy,我使用的是Python 3.7和Numpy 1.16.5 我尝试使用以下代码: import numpy as np M = [[np.eye(3), np.zeros((3,3))],[temp4, np.eye(3)]] FTp = [[-0.0003],[0.0008],[0.0008],[0.0055],[0.0020],[0.0044]] FT = np.linalg.solve(M,FTp) 此代码的目的是在M和FTp(FT=M\FTp)之间获得一个左除法 temp4是一个自定义
import numpy as np
M = [[np.eye(3), np.zeros((3,3))],[temp4, np.eye(3)]]
FTp = [[-0.0003],[0.0008],[0.0008],[0.0055],[0.0020],[0.0044]]
FT = np.linalg.solve(M,FTp)
此代码的目的是在M
和FTp
(FT=M\FTp)之间获得一个左除法
temp4
是一个自定义值的3x3矩阵。无论temp4
的值是多少,矩阵M
都应该是完整的
但是,当我尝试运行此代码时,收到以下消息:
线性误差:奇异矩阵
导致此错误的原因以及如何修复此错误?使用从二维块开始创建二维阵列:
将numpy导入为np
tmp=np.random.rand(3,3)
M=np.块([[np.眼(3),np.零((3,3))],[tmp,np.眼(3)])
M.shape#(6,6)
FTp=[-0.0003]、[0.0008]、[0.0008]、[0.0055]、[0.0020]、[0.0044]]
FT=np.linalg.solve(M,FTp)
英尺
数组([-0.0003],
[ 0.0008 ],
[ 0.0008 ],
[ 0.00477519],
[ 0.0014083 ],
[ 0.00380704]])
可能是因为矩阵M
是单数的(即不可逆的)。实际上,看起来M
不是矩阵。自己打印出来,Print(np.array(M))
或Print(np.array(M.shape)
@MateenUlhaqPrint(np.array(M.shape)
的结果是(2,2,3,3)。我试着把M做成6x6矩阵,但似乎我没能做成想要的M。我怎样才能修复它?