xiehongzhe 发表于 2024-11-16 20:00:57

列表推导式相关,求矩阵转置哪里有问题

matrix = [,
          ,
          ]
Tmatrix = for row in matrix for col in range(4)]
print(Tmatrix)

FishC 发表于 2024-11-16 20:01:04

在你的代码中,列表推导式的结构不正确,或许这里有一些误解。要实现矩阵的转置,我们需要交换矩阵的行和列。假设矩阵是一个二维列表,首先我们要确保传入的是一个有效的矩阵。

以下是实现矩阵转置的正确方法:

matrix = [
    ,
    ,
   
]

# 获取矩阵的转置
Tmatrix = [ for row in matrix] for i in range(len(matrix))]

print(Tmatrix)

这样,`Tmatrix` 会是矩阵 `matrix` 的转置。即,对于原矩阵的每一列生成新的行。这种方式适用于任何非空矩阵。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-11-16 21:41:45

本帖最后由 jackz007 于 2024-11-17 11:13 编辑

matrix = [,
          ,
          ]
Lmatrix = [[-1 - row] for col in range(len(matrix))] for row in range(len(matrix))]
Rmatrix = [ for col in range(len(matrix))] for row in range(len(matrix))]
for x in matrix : print(*x)
print()
for x in Lmatrix : print(*x)
print()
for x in Rmatrix : print(*x)
      运行实况:
D:\\Python>python x.py
1 2 3 4
5 6 7 8
9 10 11 12

4 8 12
3 7 11
2 6 10
1 5 9

9 5 1
10 6 2
11 7 3
12 8 4

D:\\Python>

isdkz 发表于 2024-11-17 13:21:55

matrix = [,
          ,
          ]
Tmatrix = list(zip(*matrix))
print(*Tmatrix, sep='\n')
页: [1]
查看完整版本: 列表推导式相关,求矩阵转置哪里有问题