YJanice

导航

矩阵乘法的Python实现

本文经用Python基本语句和基本数据类型,不使用第三方数学计算来实现矩阵相乘

基本思路:

  1. 完成矩阵的输入
  2. 矩阵相乘
    矩阵相乘的流程:
  3. 判断矩阵A与B的维度是否匹配,例如A为m行n列,则B为n行m列
  4. 矩阵相乘的结果是一个新的矩阵,新矩阵中的第i行第j列的值是:矩阵A的第i行与矩阵B的第j列相对应的元素相乘后相加。

代码如下:

'''
   @矩阵相乘
   @作者:黑喵局长
   @日期:2019-03-29
'''

# 定义函数,用于生成矩阵
def matrix():
    m = int(input("请输入矩阵的行数:"))
    n = int(input("请输入矩阵的列数:"))
    # 创建空列表
    arr = []
    for i in range(m):
         arr.append([])    #在空列表中再添加一个空列表
         for j in range(n):
             x = int(input("请输入:"))
             arr[i].append(x)    #为内层列表添加元素
    return arr


# 调用函数
a = matrix()
b = matrix()
c = []
# if语句,判断矩阵的维度是否匹配
if len(a[0]) == len(b) and len(a) == len(b[0]):
    for i in range(len(a)):   # 矩阵的行
        c.append([])
        for j in range(len(b[0])):  # 矩阵的列
            s = sum(a[i][k] * b[k][j] for k in range(len(b))) # a矩阵的行与b矩阵的列相乘,并求和
            c[i].append(s)
    print(c)
else:
    print("输入的矩阵维度不匹配,本次程序执行结束!")

这个代码是有缺陷的,虽然看起来代码行数不多,但是因为双重for循环,使得代码运行较慢,本文中只适合学习Python基本语句的学习。

posted on 2019-03-29 23:19  YJanice  阅读(1619)  评论(0编辑  收藏  举报