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

Python手动实现矩阵转置出错,求问题原因及解决方法

矩阵转置函数错误分析与修复

错误根源

你当前的代码直接在原矩阵上修改元素,这会导致原始数据被提前覆盖。举个例子:
当遍历到i=0, j=1时,matrix[0][1]被替换为matrix[1][0]的原始值;但后续遍历到i=1, j=0时,matrix[1][0]已经被之前的操作改成了matrix[0][1]的原始值,而非最初的matrix[1][0]。这种覆盖会让最终矩阵出现大量重复元素,完全不符合转置的要求。

修复代码

正确的做法是创建一个新矩阵来存储转置结果,保留原矩阵的所有原始数据。以下是符合要求的实现:

def transpose(matrix):
    rows = matrix.shape[0]
    cols = matrix.shape[1]
    # 初始化新的转置矩阵,行列数与原矩阵互换
    transposed_matrix = [[0]*rows for _ in range(cols)]
    
    for i in range(rows):
        for j in range(cols):
            # 将原矩阵[i][j]赋值给新矩阵[j][i]
            transposed_matrix[j][i] = matrix[i][j]
    
    # 如果输入是numpy数组,可转换为数组返回:return np.array(transposed_matrix)
    return transposed_matrix

测试验证

用你的示例输入测试:
输入矩阵:

1  2  3  4 
5  6  7  8
9  10 11 12
13 14 15 16

修复后的代码会输出正确的转置结果:

1 5 9  13
2 6 10 14
3 7 11 15
4 8 12 16

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 06:48:19