思路:
矩阵 * 向量 需要满足的条件:二维矩阵的列数 = 向量的元素长度(即len())。
在这道题里面相对简单我们只需要使用=shape=返回矩阵的列数n,然后跟向量的len对比,如果不匹配,返回-1,如果匹配则调用=dot函数= or =@符号= or =matmul函数= 即可
def matrix_vector_dot_product(matrix, vector):
"""
计算矩阵和向量的点积
参数:
matrix: 二维列表,表示矩阵
vector: 一维列表,表示向量
返回:
如果维度匹配,返回点积结果的一维列表
如果维度不匹配,返回 -1
"""
import numpy as np
# 将输入转换为numpy数组
mat = np.array(matrix)
vec = np.array(vector)
# 获取矩阵的维度
m, n = mat.shape # m行,n列
# 检查维度是否匹配:矩阵的列数应该等于向量的长度
if n != len(vec):
return -1
# 计算点积
result = np.dot(mat, vec)
# result = np.matmul(mat, vec)
# result = mat @ vec
# 将结果转换为列表形式返回
return result.tolist()
# 主程序
if __name__ == "__main__":
# 输入矩阵和向量
matrix_input = input()
vector_input = input()
# 处理输入
import ast
matrix = ast.literal_eval(matrix_input)
vector = ast.literal_eval(vector_input)
# 调用函数计算点积
output = matrix_vector_dot_product(matrix, vector)
# 输出结果
print(output)

京公网安备 11010502036488号