Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm ma trận chuyển vị (transpose) trong Python

Bài toán: cho ma trận, hiển thị ma trận chuyển vị. Chuyển vị: giá trị tại A[i][j] thay bằng A[j][i].

Cách 1: Tạo ma trận mới lưu chuyển vị

def transpose(A, B):
    for i in range(M):
        for j in range(N):
            B[i][j] = A[j][i]

M = N = 4
A = [[0, 1, 1, 0], [0, 2, 0, 2], [0, 3, 0, 3], [0, 0, 4, 4]]
B = A[:][:]  # ma trận rỗng
transpose(A, B)
print("Transformed matrix is")
for i in range(N):
    for j in range(N):
        print(B[i][j], " ", end='')
    print()
Transformed matrix is
0 0 0 0
0 2 3 0
0 3 0 4
0 0 4 4

Cách 2: Lưu chuyển vị ngay vào ma trận gốc (in-place)

def transpose(A):
    for i in range(M):
        for j in range(i+1, N):
            A[i][j], A[j][i] = A[j][i], A[i][j]

M = N = 4
A = [[0, 1, 1, 0], [0, 2, 0, 2], [0, 3, 0, 3], [0, 0, 4, 4]]
transpose(A)
print("Transformed matrix is")
for i in range(M):
    for j in range(N):
        print(A[i][j], " ", end='')
    print()
Transformed matrix is
0 0 0 0
0 2 3 0
0 3 0 4
0 0 4 4

Kết luận

Đã học 2 cách chuyển vị ma trận: tạo ma trận mới và in-place (chỉ dùng cho ma trận vuông).