weixin_51573847 2022-10-06 07:10 采纳率: 77.3%
浏览 109
已结题

矩阵相乘的python函数

不用numpy的方法来计算矩阵相乘

img

innerproduct是计算两个向量的内积

函数AxIP应该使用内积来计算结果的向量(称之为b)
你应该写一个单一的循环,只用A[i,:]来引用A的行。b的每个元素 的每个元素都应该用你的innerProduct()函数来构建。

函数AxVS应将结果向量b作为向量和来计算
在AxVS中,你应该写一个单一的循环,只用A[:,i]来引用列A。使用这些列来 用一个矢量和来计算b

  • 写回答

2条回答 默认 最新

  • lazyn 2022-10-06 09:32
    关注
    import numpy as np
    
    
    def innerProduct(a, b):
        return sum(i * j for i, j in zip(a, b))
    
    
    def AxIP(A, x):
        col_result = []
        for i in range(A.shape[0]):
            col_result.append([innerProduct(A[i, :], x)])
        return np.array(col_result)
    
    
    def AxVS(A, B):
        result = []
        for i in range(B.shape[1]):
            result.append(AxIP(A, B[:, i]))
        return np.hstack(result)
    
    
    A = np.array([[1, 2], [3, 4]])
    B = np.array([[3, 6], [1, 1]])
    print(AxVS(A, B))
    
    A = np.array([[1, 2]])
    B = np.array([[3], [6]])
    print(AxVS(A, B))
    
    A = np.array([[1], [2]])
    B = np.array([[3, 6]])
    print(AxVS(A, B))
    

    测试了(n*n)*(n*n), (n*1)*(1*n), (1*n)*(n*1)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 10月6日

悬赏问题

  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作