我正在嘗試使用函數式編程來編寫以下函數。如何在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' –