Skip to Main Content
Blog

Check if a Matrix is Diagonal or Not in Python

Check if a Matrix is Diagonal or Not in Python

def is_diagonal_matrix(mat: list[list[int]]):
    n = len(mat)
    if n != len(mat[0]):
        return False

    for r in range(n):
        for c in range(n):
            if r != c and mat[r][c] != 0:
                return False
    return True


def is_anti_diagonal_matrix(mat: list[list[int]]):
    n = len(mat)
    if n != len(mat[0]):
        return False

    for r in range(n):
        for c in range(n):
            if r + c != n - 1 and mat[r][c] != 0:
                return False
    return True


def read_matrix(m: int, n: int):
    mat: list[list[int]] = []
    for r in range(m):
        row = list(map(int, input(f"Row {r:02d}: ").strip().split()))
        mat.append(row)
    return mat


def main():
    n = int(input("Enter n: "))
    a = read_matrix(n, n)
    d1 = is_diagonal_matrix(a)
    d2 = is_anti_diagonal_matrix(a)
    print("Diagonal" if d1 else "Anti-Diagonal" if d2 else "None")


if __name__ == "__main__":
    main()