전치 행렬(transposed matrix)은 기존 행렬의 행과 열을 바꾼 행렬이다. 달리 말하면 기존의 행 번호가 열 번호가 되고, 열 번호가 행 번호가 된다.
이를 수식으로는 다음처럼 표기한다.
$$ u_{ij} \rightarrow u_{ji} $$
예를들면, 3행 2열 크기인 행렬 $U$의 전치행렬은 2행 3열이 된다. 행렬 $U$의 전치행렬은 $U^\tau$로 표기한다.
A = [[1, 5], [3, 4], [6, 1]] #전치 행렬이 될 행렬
def transpose(A):
n = len(A)
p = len(A[0])
At = [] #전치 행렬
for i in range(0, p):
row = []
for j in range(0, n):
val = A[j][i]
row.append(val)
At.append(row)
return At
print(transpose(A))
전치행렬을 만드는 로직을 한번에 생각을 못했다.. 알고리즘 사고가 아예 막혀버린듯. 보강해야 한다.
import numpy as np
A = np.array([[1, 5], [3, 4], [6, 1]])
At = np.transpose(A)
print(At)
대칭행렬(symmetirc matrix)는 기존 행렬과 전치행렬이 동일한 행렬을 의미한다. 이를 위해선 정사각 행렬이어야 한다. 즉,
$$ A = A^\tau $$