如何用for循环和if语句求二维矩阵每行和并找出最大和及行索引
问题解决:计算矩阵行和并找最大值及索引
给定二维矩阵A = [[1,2,3], [4,5,6]],要求不使用sum函数与numpy库,仅通过for循环和if语句计算每行的元素和,随后找出这些和中的最大值及其对应的行索引并输出结果。
原代码存在的问题
- 缺少对矩阵元素的累加操作,无法计算每行总和
- 最大值判断时机错误,在内部循环中就进行比较,此时
total还未完成整行元素的累加
修正后的代码
A = [[1,2,3], [4,5,6]] max_sum = 0 row_index = 0 # 遍历矩阵的每一行 for i in range(len(A)): total = 0 # 遍历当前行的所有元素,累加求和 for j in range(len(A[i])): total += A[i][j] # 整行求和完成后,判断是否为当前最大值 if total > max_sum: max_sum = total row_index = i # 输出最终结果 print(f"最大行和为: {max_sum},对应的行索引为: {row_index}")
代码说明
- 用
len(A)和len(A[i])动态获取矩阵的行、列数,让代码适配任意行列数的二维矩阵,不局限于固定的2行3列 - 内部循环完成当前行所有元素的累加后,再与当前记录的最大值
max_sum比较,确保比较的是完整的行和 - 同步更新最大值对应的行索引,最终输出结果
内容的提问来源于stack exchange,提问作者Honey
相关产品推荐
相关产品推荐

