【发布时间】:2012-05-08 18:17:21
【问题描述】:
所以我试图将矩阵乘以向量。并且python不断抛出错误。这是我正在尝试的代码:
def matmult(m, v):
rows = len(m)
w = [0]*rows
irange = range(len(v))
sum = 0
for j in range(rows):
r = m[j]
for i in irange:
sum += r[i]*v[i]
w[j],sum = sum,0
return w
这不是我的,但那是我在生气并删除它之前编码的。错误是:TypeError: unsupported operand type(s) for +: 'int' and 'list'
我猜测 python 将向量视为一个 int 或一个列表,并且由于类型的不同而不会执行任何基本运算符。有什么办法可以解决这个问题?不幸的是我不能使用 Numpy。
【问题讨论】:
-
错误出现在
sum += r[i]*v[i]行中。 -
貌似
r[i] * v[i]是一个列表,大概意思是r[i]是一个列表,意思是m[j][i]是一个列表。你能打印出你正在使用的m的值吗? -
如果你有很多这样的操作,你应该看看numpy。
-
在实际项目中,您将使用real libraries 而不是重新发明轮子。
标签: python vector matrix multiplication