You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

矩阵乘法嵌套循环索引异常:scaledMatrix赋值错误排查

矩阵乘法代码的行引用问题修复

你的问题出在结果矩阵的初始化方式上:

scaledMatrix = [[0]*3]*n

这种写法会让scaledMatrix里的n个行全部指向同一个列表对象。也就是说,scaledMatrix[0]和scaledMatrix[1]其实是同一个[0,0,0]的引用,修改其中一行的元素,所有行都会跟着变——这就是为什么第一次迭代后,[0][0]和[1][0]同时变成了2。

修复方法

用列表推导式初始化结果矩阵,确保每一行都是独立的新列表:

scaledMatrix = [[0]*3 for _ in range(n)]

修正后的完整代码片段

# 正确初始化结果矩阵
scaledMatrix = [[0]*3 for _ in range(n)]

for i in range(n):
    for j in range(3):
        sum_of_elements = 0
        for k in range(n):
            sum_of_elements += coordinateMatrix[i][k]*otherMatrix[k][j]
        scaledMatrix[i][j] = sum_of_elements

这样修改后,每一行都是独立的,修改scaledMatrix[i][j]只会影响对应位置的元素,不会牵连其他行。

内容的提问来源于stack exchange,提问作者kiddo42069

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 04:55:29