# Program to check diagonal matrix and scalar matrix

A square matrix is said to be diagonal matrix if the elements of matrix except main diagonal are zero. A square null matrix is also a diagonal matrix whose main diagonal elements are zero.
Examples :

```Input :
Mat[4][0] = {{4, 0, 0, 0},
{0, 5, 0, 0},
{0, 0, 2, 0},
{0, 0, 0, 1}}
Output : Yes

Mat[4][0] = {{6, 10, 12, 0},
{0, 5, 0, 0},
{0, 0, 9, 0},
{0, 0, 0, 1}}
Output : No
```

## CPP

 `// Program to check matrix is diagonal matrix or not. ` `#include ` `#define N 4 ` `using` `namespace` `std; ` ` `  `// Function to check matrix is diagonal matrix ` `// or not. ` `bool` `isDiagonalMatrix(``int` `mat[N][N]) ` `{ ` `    ``for` `(``int` `i = 0; i < N; i++) ` `        ``for` `(``int` `j = 0; j < N; j++) ` ` `  `            ``// condition to check other elements  ` `            ``// except main diagonal are zero or not. ` `            ``if` `((i != j) && (mat[i][j] != 0)) ` `                ``return` `false``; ` `    ``return` `true``; ` `} ` ` `  `// Driver function ` `int` `main() ` `{ ` `    ``int` `mat[N][N] = { { 4, 0, 0, 0 }, ` `                      ``{ 0, 7, 0, 0 }, ` `                      ``{ 0, 0, 5, 0 }, ` `                      ``{ 0, 0, 0, 1 } }; ` ` `  `    ``if` `(isDiagonalMatrix(mat)) ` `        ``cout << ``"Yes"` `<< endl; ` `    ``else` `        ``cout << ``"No"` `<< endl; ` `    ``return` `0; ` `} `

## Java

 `// Program to check matrix is ` `// diagonal matrix or not. ` ` `  `import` `java.io.*; ` ` `  `class` `GFG { ` `     `  `    ``static` `int` `N = ``4``; ` `     `  `    ``// Function to check matrix ` `    ``// is diagonal matrix ` `    ``// or not. ` `    ``static` `boolean` `isDiagonalMatrix(``int` `mat[][]) ` `    ``{ ` `        ``for` `(``int` `i = ``0``; i < N; i++) ` `            ``for` `(``int` `j = ``0``; j < N; j++) ` `      `  `                ``// condition to check ` `                ``// other elements  ` `                ``// except main diagonal  ` `                ``// are zero or not. ` `                ``if` `((i != j) && ` `                   ``(mat[i][j] != ``0``)) ` `                    ``return` `false``; ` ` `  `        ``return` `true``; ` `    ``} ` `      `  `    ``// Driver function ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `mat[][] = { { ``4``, ``0``, ``0``, ``0` `}, ` `                          ``{ ``0``, ``7``, ``0``, ``0` `}, ` `                          ``{ ``0``, ``0``, ``5``, ``0` `}, ` `                          ``{ ``0``, ``0``, ``0``, ``1` `} }; ` `      `  `        ``if` `(isDiagonalMatrix(mat)) ` `            ``System.out.println(``"Yes"``); ` `        ``else` `            ``System.out.println(``"No"` `); ` `    ``} ` `} ` ` `  `// This code is contributed by ` `// Nikita Tiwari. `

## Python3

 `# Python3 Program to check if matrix ` `# is diagonal matrix or not. ` ` `  `N ``=` `4` ` `  `# Function to check matrix ` `# is diagonal matrix ` `# or not.    ` `def` `isDiagonalMatrix(mat) : ` `    ``for` `i ``in` `range``(``0``, N): ` `        ``for` `j ``in` `range``(``0``, N) : ` `             `  `            ``# condition to check ` `            ``# other elements  ` `            ``# except main diagonal ` `            ``# are zero or not. ` `            ``if` `((i !``=` `j) ``and` `             ``(mat[i][j] !``=` `0``)) : ` `                ``return` `False` ` `  `    ``return` `True` ` `  ` `  `# Driver function ` `mat ``=` `[[ ``4``, ``0``, ``0``, ``0` `], ` `       ``[ ``0``, ``7``, ``0``, ``0` `], ` `       ``[ ``0``, ``0``, ``5``, ``0` `], ` `       ``[ ``0``, ``0``, ``0``, ``1` `]] ` ` `  `if` `(isDiagonalMatrix(mat)) : ` `    ``print``(``"Yes"``) ` `else` `: ` `    ``print``(``"No"``) ` `     `  `     `  `# This code is contributed by Nikita Tiwari. `

## C#

 `// Program to check matrix is ` `// diagonal matrix or not. ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``static` `int` `N = 4; ` `     `  `    ``// Function to check matrix ` `    ``// is diagonal matrix ` `    ``// or not. ` `    ``static` `bool` `isDiagonalMatrix(``int` `[,]mat) ` `    ``{ ` `        ``for` `(``int` `i = 0; i < N; i++) ` `            ``for` `(``int` `j = 0; j < N; j++) ` `     `  `                ``// condition to check ` `                ``// other elements  ` `                ``// except main diagonal  ` `                ``// are zero or not. ` `                ``if` `((i != j) &&    (mat[i,j] != 0)) ` `                    ``return` `false``; ` ` `  `        ``return` `true``; ` `    ``} ` `     `  `    ``// Driver function ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `[,]mat = { { 4, 0, 0, 0 }, ` `                        ``{ 0, 7, 0, 0 }, ` `                        ``{ 0, 0, 5, 0 }, ` `                        ``{ 0, 0, 0, 1 } }; ` `     `  `        ``if` `(isDiagonalMatrix(mat)) ` `            ``Console.WriteLine(``"Yes"``); ` `        ``else` `            ``Console.WriteLine(``"No"` `); ` `    ``} ` `} ` ` `  `// This code is contributed by ` `// vt_m. `

/div>

## PHP

 ` `

Output:

```Yes
```

Scalar matrix:

A square matrix is said to be scalar matrix if all the main diagonal elements are equal and other elements except main diagonal are zero. Scalar matrix can also be written in form of n * I, where n is any real number and I is the identity matrix.
Examples:

```Input :
Mat[4][4] = {{4, 0, 0, 0},
{0, 4, 0, 0},
{0, 0, 4, 0},
{0, 0, 0, 4}}
Output : Yes

Mat[4][4] = {{4, 0, 0, 0},
{0, 4, 0, 0},
{0, 0, 1, 0},
{0, 0, 0, 4}}
Output : No
```

## CPP

 `// Program to check matrix is scalar matrix or not. ` `#include ` `#define N 4 ` `using` `namespace` `std; ` ` `  `// Function to check matrix is scalar matrix or not. ` `bool` `isScalarMatrix(``int` `mat[N][N]) ` `{ ` `    ``// Check all elements except main diagonal are ` `    ``// zero or not. ` `    ``for` `(``int` `i = 0; i < N; i++) ` `        ``for` `(``int` `j = 0; j < N; j++) ` `            ``if` `((i != j) && (mat[i][j] != 0)) ` `                ``return` `false``; ` ` `  `    ``// Check all diagonal elements are same or not. ` `    ``for` `(``int` `i = 0; i < N - 1; i++) ` `        ``if` `(mat[i][i] != mat[i + 1][i + 1]) ` `            ``return` `false``; ` `    ``return` `true``; ` `} ` ` `  `// Driver function ` `int` `main() ` `{ ` `    ``int` `mat[N][N] = { { 2, 0, 0, 0 }, ` `                      ``{ 0, 2, 0, 0 }, ` `                      ``{ 0, 0, 2, 0 }, ` `                      ``{ 0, 0, 0, 2 } }; ` `    ``// Function call ` `    ``if` `(isScalarMatrix(mat)) ` `        ``cout << ``"Yes"` `<< endl; ` `    ``else` `        ``cout << ``"No"` `<< endl; ` `    ``return` `0; ` `} `

## Java

 `// Program to check matrix ` `// is scalar matrix or not. ` `import` `java.io.*; ` ` `  `class` `GFG { ` `     `  `    ``static` `int` `N = ``4``; ` `    ``// Function to check matrix ` `    ``// is scalar matrix or not. ` `    ``static` `boolean` `isScalarMatrix(``int` `mat[][]) ` `    ``{ ` `        ``// Check all elements ` `        ``// except main diagonal are ` `        ``// zero or not. ` `        ``for` `(``int` `i = ``0``; i < N; i++) ` `            ``for` `(``int` `j = ``0``; j < N; j++) ` `                ``if` `((i != j) ` `                  ``&& (mat[i][j] != ``0``)) ` `                    ``return` `false``; ` `      `  `        ``// Check all diagonal elements ` `        ``// are same or not. ` `        ``for` `(``int` `i = ``0``; i < N - ``1``; i++) ` `            ``if` `(mat[i][i] != mat[i + ``1``][i + ``1``]) ` `                ``return` `false``; ` `        ``return` `true``; ` `    ``} ` `      `  `    ``// Driver function ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `mat[ ][ ] = { { ``2``, ``0``, ``0``, ``0` `}, ` `                          ``{ ``0``, ``2``, ``0``, ``0` `}, ` `                          ``{ ``0``, ``0``, ``2``, ``0` `}, ` `                          ``{ ``0``, ``0``, ``0``, ``2` `} }; ` `        ``// Function call ` `        ``if` `(isScalarMatrix(mat)) ` `            ``System.out.println(``"Yes"``); ` `        ``else` `            ``System.out.println(``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed ` `// by Nikita tiwari. `

## Python3

 `# Program to check matrix ` `# is scalar matrix or not. ` ` `  ` `  `N ``=` `4` ` `  `# Function to check matrix is ` `# scalar matrix or not. ` `def` `isScalarMatrix(mat) : ` `     `  `    ``# Check all elements  ` `    ``# except main diagonal are ` `    ``# zero or not. ` `    ``for` `i ``in` `range``(``0``,N) : ` `        ``for` `j ``in` `range``(``0``,N) : ` `            ``if` `((i !``=` `j)  ` `               ``and` `(mat[i][j] !``=` `0``)) : ` `                ``return` `False` `  `  `    ``# Check all diagonal ` `    ``# elements are same or not. ` `    ``for` `i ``in` `range``(``0``,N``-``1``) : ` `        ``if` `(mat[i][i] !``=` `           ``mat[i ``+` `1``][i ``+` `1``]) : ` `            ``return` `False` ` `  `    ``return` `True` ` `  ` `  `# Driver function ` `mat ``=` `[[ ``2``, ``0``, ``0``, ``0` `], ` `       ``[ ``0``, ``2``, ``0``, ``0` `], ` `       ``[ ``0``, ``0``, ``2``, ``0` `], ` `       ``[ ``0``, ``0``, ``0``, ``2` `]] ` ` `  `# Function call ` `if` `(isScalarMatrix(mat)): ` `    ``print``(``"Yes"``) ` `else` `: ` `    ``print``(``"No"``) ` `     `  `     `  `# This code is contributed by ` `# Nikita tiwari. `

## C#

 `// Program to check matrix ` `// is scalar matrix or not. ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``static` `int` `N = 4; ` `     `  `    ``// Function to check matrix ` `    ``// is scalar matrix or not. ` `    ``static` `bool` `isScalarMatrix(``int` `[,]mat) ` `    ``{ ` `        ``// Check all elements ` `        ``// except main diagonal are ` `        ``// zero or not. ` `        ``for` `(``int` `i = 0; i < N; i++) ` `            ``for` `(``int` `j = 0; j < N; j++) ` `                ``if` `((i != j) && (mat[i,j] != 0)) ` `                    ``return` `false``; ` `     `  `        ``// Check all diagonal elements ` `        ``// are same or not. ` `        ``for` `(``int` `i = 0; i < N - 1; i++) ` `            ``if` `(mat[i, i] != mat[i + 1, i + 1]) ` `                ``return` `false``; ` `        ``return` `true``; ` `    ``} ` `     `  `    ``// Driver function ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `[,]mat = { { 2, 0, 0, 0 }, ` `                        ``{ 0, 2, 0, 0 }, ` `                        ``{ 0, 0, 2, 0 }, ` `                        ``{ 0, 0, 0, 2 } }; ` `        ``// Function call ` `        ``if` `(isScalarMatrix(mat)) ` `            ``Console.WriteLine(``"Yes"``); ` `        ``else` `            ``Console.WriteLine(``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed ` `// by vt_m. `

## PHP

 ` `

Output :

```Yes
```

## tags:

Mathematical Matrix Mathematical Matrix