矩阵转置(行列互换)


如图一个二维列表

target_list = [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],[13, 14, 15, 16]]

红线处表示行列坐标相等,右上角是列坐标大于行坐标,左下角是行坐标大于列坐标,所以调换只需要遍历右上部分,与其对位交换即可。

代码如下

def maxtrix_inversion(maxtrix_target):
    """矩阵转置
		
    Args:
        target (list[][]): 目标矩阵,一个二维列表
    """
    for r in range(len(target) - 1):
        for c in range(r + 1, len(target[r])):
            target[r][c], target[c][r] = target[c][r], target[r][c]