2

我有两个矩阵

a = matrix(((1.4) ,(2.5) ,(1.96),(6.25),(12.25))

b = matrix(((1 ,1,1,1,1),(2,2,2,2,2)))

当我将这些矩阵相乘时

product = b*a

我收到一个错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/numpy-1.7.0-py2.6-linux-i686.egg/numpy/matrixlib/defmatrix.py", line 330, in __mul__
    return N.dot(self, asmatrix(other))
ValueError: matrices are not aligned

请帮我解决这个问题

4

1 回答 1

4

你的矩阵是乘以它们的错误形状。我想你可能打算定义a为:

a = matrix(((1.4,),(2.5,),(1.96,),(6.25,),(12.25,)))

这与以下内容相同:

a = matrix((1.4,2.5,1.96,6.25,12.25)).T

或者

a = matrix(((1.4),(2.5),(1.96),(6.25),(12.25))).T

请注意,逗号是构成元组的原因。括号只是为了避免语法上的歧义。在最后一个例子中,最里面的括号组什么都不做,并被python的解析器删除。

于 2013-04-02T13:47:44.827 回答