这是我在 Octave 中的代码:
sum(bsxfun(@times, X*Y, X), 2)
代码的 bsxfun 部分产生逐元素乘法,所以我认为这numpy.multiply(X*Y, X)
可以解决问题,但我遇到了一个例外。当我做了一些研究时,我发现逐元素乘法不适用于 Python 数组(特别是如果 X 和 Y 的类型为“numpy.ndarray”)。所以我想知道是否有人可以对此进行更多解释——即,将类型转换为不同类型的对象工作?Octave 代码有效,所以我知道我没有线性代数错误。我假设 bsxfun 和 numpy.multiply 实际上并不等效,但我不确定为什么任何解释都会很好。
我能够找到一个网站!这将 Octave 提供给 Matlab 函数转换,但在我的情况下似乎没有帮助。