我有一个矩阵Boolean
和一个矩阵A=[2,5,8]
。
在Python中,我希望得到正确除法的结果B=[65,40,20]
(我已在Matlab中测试过它)
在Python中,我不能A/B=0.0787
因为在Python中我们不能采用一维矩阵的逆。例如,像A/B
一样。
如何在Python中执行inv(b)
?
答案 0 :(得分:0)
我的假设你认为A和B是行矩阵。
在这种情况下,正如您所提到的,B的倒数不存在。通常,矩阵的逆仅存在于方阵的子集中。由于B不是方阵,因此B的倒数不存在。并且,由于2个矩阵A / B的除法等于A * B -1 ,在您的情况下,A和B的除法不存在。
话虽这么说,你可以生成B的伪逆,numpy link,这将允许你划分A和B(种类)。我的猜测是Matlab正在使用B的伪逆来进行计算。
在python中做同样的事情试试这个:
A = numpy.array([[2,5,8]])
B = numpy.array([[65,40,20]])
A * numpy.linalg.pinv(B)
如果您尝试使用此代码,则会发现另一个问题。由于A / B = A * B -1 ,你的计算结果将是一个矩阵,而不是你从Matlab得到的标量......