Skip to Main Content
Blog

Check Symmetric Matrix in Python

Check Symmetric Matrix in Python

def main():
	"""
	Prints if a matrix is a symmetric or a anti-symmetric matrix.
	"""

	count = int(input("Enter length: "))
	print("Enter matrix: ")
	matrix = read_matrix(count, count)

	s1 = is_symmetric(matrix)
	s2 = is_anti_symmetric(matrix)

	if s1:
		print("Symmetric Matrix")
	elif s2:
		print("Anti-Symmetric Matrix")
	else:
		print("Not a Symmetric Matrix")


def is_symmetric(matrix: list[list[int]]):
	"""
	Checks if a matrix is a symmetric matrix.
	"""

	n = len(matrix)
	for r in range(n):
		if len(matrix[r]) != n:
			return False
		for c in range(n):
			if matrix[r][c] != matrix[c][r]:
				return False
	return True


def is_anti_symmetric(matrix: list[list[int]]):
	"""
	Checks if a matrix is an anti-symmetric matrix.
	"""

	n = len(matrix)
	for r in range(n):
		if len(matrix[r]) != n:
			return False
		for c in range(n):
			if matrix[r][c] != -matrix[c][r]:
				return False
	return True


def read_matrix(row_count: int, col_count: int):
	"""
	Reads a matrix from the console.
	"""

	matrix: list[list[int]] = []
	for _ in range(row_count):
		row = list(map(int, input().split()[:col_count]))
		matrix.append(row)

	return matrix


if __name__ == "__main__":
	main()