我正在尝试使用函数式编程来编写以下函数。如何在python中使用矩阵和向量的reduce/lambda函数?
def mv(A,X,n):
Y = [0]*n
for i in range(n):
for j in range(n):
Y[i] += A[i][j] * X[j]
return Y
减法函数可以将一个向量乘以一个矩阵吗?因为这是我在这里要做的。我正在尝试将矩阵A
与矢量X
相乘,但收到错误。错误是:
TypeError: 'function' object is not iterable
def mv(A,X,n):
return list(map(sum,lambda x, y: x*y(A, X)))
要输入:
A = [[1,2],[3,4]]
X = [1,2]
n = 2
print(mv(A,X,n))
输出应该是:
[5,11]
什么错误你得到? –
TypeError:'函数'对象不可迭代 – ce1
正如所料。 'map'的第二个参数是一个可迭代的非函数,所以你必须通过你的列表而不是'lambda' –