首页 > 试题广场 >

矩阵和向量的点积

[编程题]矩阵和向量的点积
  • 热度指数:2364 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
编写一个函数,该函数计算矩阵和向量的点积。如果矩阵无法与向量进行点积,则返回 -1。

输入描述:
第一行输入矩阵,第二行输入需要相乘的向量。


输出描述:
输出对应的点积,返回结果以list形式
示例1

输入

[[3, 5, 2], [1, 0, 4], [2, 3, 1]]
[2, 1, 3]

输出

[17, 14, 10]

说明

3*2+5*1+2*3=17
1*2+0*1+4*3=14
2*2+3*1+1*3=10
示例2

输入

[[1, 2, 3], [4, 5, 6]]
[1, 2]

输出

-1

说明

矩阵维度(2,3),向量维度(2,1),维度不匹配,返回-1

备注:
1.Python3对应的输入、输出已给出,您只用实现核心功能函数即可。
2.支持numpy、scipy、pandas、scikit-learn库。

import numpy as np

def matrix_vector_dot_product(matrix, vector):
    # 补全代码
    matrix=np.array(matrix)
    vector=np.array(vector)
    if matrix.shape[1]!=vector.shape[0]:
        return -1

    result=np.dot(matrix,vector)
    result1=', '.join(map(str, result))
    result1='['+result1+']'
    # print(result1)
    return result1
# 主程序
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)

发表于 2025-08-26 14:35:45 回复(0)