用python实现矩阵乘法_矩阵乘法的Python实现

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

基本思路:

完成矩阵的输入

矩阵相乘

矩阵相乘的流程:

判断矩阵A与B的维度是否匹配,例如A为m行n列,则B为n行m列

矩阵相乘的结果是一个新的矩阵,新矩阵中的第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基本语句的学习。

你可能感兴趣的:(用python实现矩阵乘法)