ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อกำหนดด้านล่าง
ข้อกำหนดปัญหา − เราได้รับเมทริกซ์ ต้องแสดง transpose ของเมทริกซ์
Transpose ของเมทริกซ์ได้โดยการแทนค่าที่ A[i][j] ด้วย A[j][i]
มาสังเกตแนวคิดในการนำไปใช้ด้านล่าง
วิธีที่ 1: สร้างเมทริกซ์ใหม่เก็บ transpose ของเมทริกซ์อินพุต
ตัวอย่าง
def transpose(A, B):
for i in range(M):
for j in range(N):
B[i][j] = A[j][i]
# driver code
M = N = 4
A = [
[0, 1, 1, 0],
[0, 2, 0, 2],
[0, 3, 0, 3],
[0, 0, 4, 4]
]
B = A[:][:] # empty matrix
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
วิธีที่ 2: เก็บ transpose ลงในเมทริกซ์อินพุตเดิม (In-place)
ตัวอย่าง
# function
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
สรุป
ในบทความนี้ เราได้เรียนรู้วิธี transpose เมทริกซ์ ทั้งแบบสร้างใหม่และแบบ in-place (สำหรับเมทริกซ์จัตุรัส)