如何不使用NumPy获取两个矩阵的输入并实现矩阵乘法运算
无需NumPy的矩阵输入与乘法实现
矩阵输入方法
要获取和示例中结构一致的嵌套列表式矩阵,可按以下步骤手动输入:
- 先输入矩阵的行数和列数,用空格分隔(比如输入
3 3表示3行3列的矩阵) - 逐行输入每行的元素,用空格分隔,程序会自动将每行转为整数列表,最终组合成完整矩阵
完整代码示例
def get_matrix(): # 获取矩阵的行数和列数 rows, cols = map(int, input("请输入矩阵的行数和列数(空格分隔):").split()) matrix = [] print(f"请输入{rows}行,每行{cols}个元素(空格分隔):") for _ in range(rows): # 读取每行元素并转为整数列表 row = list(map(int, input().split())) # 校验每行元素数量是否符合要求 while len(row) != cols: print(f"输入错误!每行需要{cols}个元素,请重新输入:") row = list(map(int, input().split())) matrix.append(row) return matrix # 获取两个矩阵输入 X = get_matrix() Y = get_matrix() # 检查矩阵是否满足相乘条件(X的列数需等于Y的行数) if len(X[0]) != len(Y): print("错误:第一个矩阵的列数必须等于第二个矩阵的行数才能相乘!") else: # 初始化结果矩阵 result = [[0 for _ in range(len(Y[0]))] for _ in range(len(X))] # 执行矩阵乘法 for i in range(len(X)): for j in range(len(Y[0])): for k in range(len(Y)): result[i][j] += X[i][k] * Y[k][j] # 输出结果 print("矩阵相乘结果:") for r in result: print(r)
使用说明
- 运行程序后,按提示依次输入第一个矩阵(如示例中的3x3矩阵X)和第二个矩阵(示例中的3x4矩阵Y)
- 程序会自动校验输入格式,确保每行元素数量正确,同时检查矩阵是否满足相乘条件
- 最终输出和示例逻辑一致的乘法结果
内容的提问来源于stack exchange,提问作者Richard Coterie
相关产品推荐
相关产品推荐

