矩阵相加:
#j_m的作用是将列表转换成矩阵的形式 def j_m(m): for i in range(len(m)): # 取0、1、2(至列表中列表的个数,用len()函数计算长度) for j in range(len(m[i])): #取0、1、2(至列表中第一个列表的长度) print(m[i][j], end=" ") #依次输出第i个列表中的第j个元素,每个末尾空一格 print("") #每取完一个列表进行换行,准备输出下一个列表的那一行 m1 = [[3, 2, 2], [5, 3, 7], [2, 1, 1]] #第一个矩阵 m2 = [[1, 2, 6], [1, 6, 7], [9, 2, 1]] #第二个矩阵 j_m(m1) #调用函数将第一个矩阵的列表变成实际矩阵形式并打印 print("------------") #打印分隔符 j_m(m2) #调用函数将第二个矩阵的列表变成实际矩阵形式并打印 print("------------") #打印分隔符 t = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] #创建一个由0组成的矩阵用于储存相加结果 for row in range(len(m1)): for col in range(len(m2)): #m1 m2对应元素进行相加 t[row][col] = m1[row][col] + m2[row][col] #将结果储存到t中,此时t仍为列表形式 j_m(t) #调用函数将t结果变成矩阵形式
运行结果:
3 2 2 5 3 7 2 1 1 ------------ 1 2 6 1 6 7 9 2 1 ------------ 4 4 8 6 9 14 11 3 2
矩阵相乘:
#c_m的作用是将列表转换成矩阵的形式 def c_m(m): for i in range(len(m)): # 取0、1、2(至列表中列表的个数,用len()函数计算长度) for j in range(len(m[i])): #取0、1、2(至列表中第一个列表的长度) print(m[i][j], end=" ") #依次输出第i个列表中的第j个元素,每个末尾空一格 print("") #每取完一个列表进行换行,准备输出下一个列表的那一行 m1 = [[3, 2, 2], [5, 3, 7], [2, 1, 1]] #第一个矩阵 m2 = [[1, 2, 6], [1, 6, 7], [9, 2, 1]] #第二个矩阵 c_m(m1) #调用函数将第一个矩阵的列表变成实际矩阵形式并打印 print("------------") #打印分隔符 c_m(m2) #调用函数将第二个矩阵的列表变成实际矩阵形式并打印 print("------------") #打印分隔符 result = [] #创建一个空列表用于储存结果 for row in range(len(m1)): rr = [] #创建每一行所在的空列表 for col in range(len(m2[0])): t = 0 for k in range(len(m2)): t = t + m1[row][k] * m2[k][col] #矩阵相乘的运算法则计算每个数字结果并赋值给t rr.append(t) #将元素储存在当前行所在列表中 result.append(rr) #将此行结果储存在结果列表中 c_m(result) #最后调用函数,将result结果的列表转换成矩阵的形式
运行结果:
3 2 2 5 3 7 2 1 1 ------------------ 1 2 6 1 6 7 9 2 1 ------------------ 23 22 34 71 42 58 12 12 20