题目
对于维度为n*m的矩阵A和一个k维向量x相乘时,会出现如下情况:
如果m=k,返回A和x的点积: ∑ j = 1 m a i j x j \sum_{j=1}^m a_{ij}x_j ∑j=1maijxj;
如果m≠k,返回-1,表示无法相乘
def matrix_vector_dot_product(a, b):
# 如果矩阵A的列数不等于向量b的长度,则返回-1
if len(a[0]) != len(b):
return -1
vals = []
for i in a:
hold = 0
for j in range(len(i)):
hold+=(i[j] * b[j])
vals.append(hold)
return vals
可以使用numpy库中的dot函数来计算矩阵和向量的点积
def matrix_vector_dot_product(a, b):
import numpy as np
if (len(a[0]) != len(b)):
return -1
# 使用tolist()将结果转换为列表
return np.dot(a, b).tolist()