Python中的一维矩阵右除

Python中的一维矩阵右除,python,python-2.7,python-3.x,matrix,Python,Python 2.7,Python 3.x,Matrix,我有一个矩阵a=[2,5,8]和一个矩阵B=[65,40,20] 在Python中,我想取右除法的结果A/B=0.0787(我已经在Matlab中进行了测试) 在Python中我不能做A/B,因为在Python中我们不能取一维矩阵的逆。例如,像inv(b) 我如何在Python中执行 A/B < /代码>?< P/> < P>我假设你把A和B看作行矩阵。 在这种情况下,正如你所提到的,B的倒数不存在。通常,矩阵的逆只存在于方阵的子集。因为B不是一个方阵,所以B的逆矩阵不存在。而且,由于2个矩阵A

我有一个矩阵
a=[2,5,8]
和一个矩阵
B=[65,40,20]

在Python中,我想取右除法的结果
A/B=0.0787
(我已经在Matlab中进行了测试)

在Python中我不能做A/B,因为在Python中我们不能取一维矩阵的逆。例如,像
inv(b)


我如何在Python中执行<代码> A/B < /代码>?< P/> < P>我假设你把A和B看作行矩阵。 在这种情况下,正如你所提到的,B的倒数不存在。通常,矩阵的逆只存在于方阵的子集。因为B不是一个方阵,所以B的逆矩阵不存在。而且,由于2个矩阵A/B的除法等于A*B-1,因此在您的例子中,A和B的除法不存在

这就是说,你可以生成一个伪逆B,这将允许你除以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获得的标量…

示例A和B不是矩阵。Matlab中的哪些代码对您有用?谢谢,但我希望结果只是一个数字,而不是一个矩阵。这有可能吗?不,从数学的角度来看这是不合理的。不知道你在Matlab中做了什么,但它在数学上没有意义。这不是一个理智的问题。问题是您希望执行什么矩阵运算。矩阵除法运算将返回一个矩阵。如果您只需要一个数字,那么您正在寻找一个不同的操作。如果你能告诉我你到底想做什么,那么我也许能帮你找到正确的手术方法。