Check if a matrix is symmetric
In mathematics, a matrix is a rectangular array of numbers. A matrix is said to be symmetric if it is equal to its own transpose. Transpose means to flip the matrix over its diagonal axis.
In simpler words, a symmetric matrix is a square matrix where the numbers above and below the diagonal are reflections of each other. So if you were to draw a line down the diagonal, the numbers on one side would be the same as the numbers on the other side but flipped.
Symmetric matrices have some nice properties in mathematics, such as being easier to diagonalize and having real eigenvalues (which are important in many applications).
//C Program
//Check if a matrix is symmetric
#include<stdio.h>
//indicating matrix size
#define SIZE 4
//Display element of matrix
void show_data(int matrix[][SIZE])
{
for (int i = 0; i < SIZE; ++i)
{
for (int j = 0; j < SIZE; ++j)
{
printf("%3d",matrix[i][j] );
}
printf("\n");
}
}
//Check that if a given matrix is symmetric or not
void is_symmetric(int matrix[][SIZE])
{
int status=1;
for (int i = 0; i < SIZE && status == 1; ++i)
{
for (int j = 0; j < SIZE && status == 1; ++j)
{
//Compare matrix element
if(matrix[i][j] != matrix[j][i])
{
status=0;
}
}
}
show_data(matrix);
if(status==1)
{
printf(" Yes\n");
}
else
{
printf(" No\n");
}
}
int main()
{
//Matrix A
int matrix1[][SIZE]= {
{7, 1, 5 ,6},
{ 1, 2, 4 ,4},
{ 5, 4, 1 ,1},
{ 6, 4, 1 ,6}
};
is_symmetric(matrix1);
//Matrix B
int matrix2[][SIZE]= {
{ 1, 2, 3 ,6},
{ 2, 5, 4 ,4},
{ 5, 4, 1 ,1},
{ 6, 4, 1 ,6}
};
is_symmetric(matrix2);
return 0;
}
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
/*
C++ Program
Check if a matrix is symmetric
*/
#include<iostream>
#define SIZE 4
using namespace std;
class MyMatrix {
public:
//Display element of matrix
void show_data(int matrix[][SIZE], int row, int col) {
for (int i = 0; i < row; ++i) {
for (int j = 0; j < col; ++j) {
cout << " " << matrix[i][j];
}
cout << "\n";
}
}
//Check that if a given matrix is symmetric or not
void is_symmetric(int matrix[][SIZE]) {
bool status = true;
int row = SIZE;
int col = row;
for (int i = 0; i < row && status == true; ++i) {
for (int j = 0; j < col && status == true; ++j) {
//Compare matrix element
if (matrix[i][j] != matrix[j][i]) {
status = false;
}
}
}
this->show_data(matrix, row, col);
if (status == true) {
cout << " Yes\n";
} else {
cout << " No\n";
}
}
};
int main() {
MyMatrix obj;
//Matrix A
int matrix1[][SIZE] = {
{
7,
1,
5,
6
},
{
1,
2,
4,
4
},
{
5,
4,
1,
1
},
{
6,
4,
1,
6
}
};
obj.is_symmetric(matrix1);
//Matrix B
int matrix2[][SIZE] = {
{
1,
2,
3,
6
},
{
2,
5,
4,
4
},
{
5,
4,
1,
1
},
{
6,
4,
1,
6
}
};
obj.is_symmetric(matrix2);
return 0;
}
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
/*
Java Program
Check if a matrix is symmetric
*/
public class MyMatrix {
//Display element of matrix
public void show_data(int [][]matrix,int row,int col)
{
for (int i = 0; i < row; ++i)
{
for (int j = 0; j < col; ++j)
{
System.out.print(" "+matrix[i][j] );
}
System.out.print("\n");
}
}
//Check that if a given matrix is symmetric or not
public void is_symmetric(int [][]matrix )
{
boolean status=true;
int row = matrix.length;
int col = matrix[0].length;
if(row!=col)
{
status=false;
}
for (int i = 0; i < row && status == true; ++i)
{
for (int j = 0; j < col && status == true; ++j)
{
//Compare matrix element
if(matrix[i][j] != matrix[j][i])
{
status=false;
}
}
}
show_data(matrix,row,col);
if(status==true)
{
System.out.print(" Yes\n");
}
else
{
System.out.print(" No\n");
}
}
public static void main(String[] args) {
MyMatrix obj = new MyMatrix();
//Matrix A
int [][]matrix1= {
{7, 1, 5 ,6},
{ 1, 2, 4 ,4},
{ 5, 4, 1 ,1},
{ 6, 4, 1 ,6}
};
obj.is_symmetric(matrix1);
//Matrix B
int [][]matrix2= {
{ 1, 2, 3 ,6},
{ 2, 5, 4 ,4},
{ 5, 4, 1 ,1},
{ 6, 4, 1 ,6}
};
obj.is_symmetric(matrix2);
}
}
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
/*
C# Program
Check if a matrix is symmetric
*/
using System;
public class MyMatrix {
//Display element of matrix
public void show_data(int[,] matrix, int row, int col) {
for (int i = 0; i < row; ++i) {
for (int j = 0; j < col; ++j) {
Console.Write(" " + matrix[i,j]);
}
Console.Write("\n");
}
}
//Check that if a given matrix is symmetric or not
public void is_symmetric(int[,] matrix) {
Boolean status = true;
int row = matrix.GetLength(0);
int col = matrix.GetLength(1);
if (row != col) {
status = false;
}
for (int i = 0; i < row && status == true; ++i) {
for (int j = 0; j < col && status == true; ++j) {
//Compare matrix element
if (matrix[i,j] != matrix[j,i]) {
status = false;
}
}
}
show_data(matrix, row, col);
if (status == true) {
Console.Write(" Yes\n");
} else {
Console.Write(" No\n");
}
}
public static void Main(String[] args) {
MyMatrix obj = new MyMatrix();
//Matrix A
int[,] matrix1 = {
{
7,
1,
5,
6
},
{
1,
2,
4,
4
},
{
5,
4,
1,
1
},
{
6,
4,
1,
6
}
};
obj.is_symmetric(matrix1);
//Matrix B
int[,] matrix2 = {
{
1,
2,
3,
6
},
{
2,
5,
4,
4
},
{
5,
4,
1,
1
},
{
6,
4,
1,
6
}
};
obj.is_symmetric(matrix2);
}
}
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
<?php
/*
Php Program
Check if a matrix is symmetric
*/
class MyMatrix {
//Display element of matrix
public function show_data($matrix, $row, $col) {
for ($i = 0; $i < $row; ++$i) {
for ($j = 0; $j < $col; ++$j) {
echo(" ". $matrix[$i][$j]);
}
echo("\n");
}
}
//Check that if a given matrix is symmetric or not
public function is_symmetric($matrix) {
$status = true;
$row = count($matrix);
$col = count($matrix[0]);
if ($row != $col) {
$status = false;
}
for ($i = 0; $i < $row && $status == true; ++$i) {
for ($j = 0; $j < $col && $status == true; ++$j) {
//Compare matrix element
if ($matrix[$i][$j] != $matrix[$j][$i]) {
$status = false;
}
}
}
$this->show_data($matrix, $row, $col);
if ($status == true) {
echo(" Yes\n");
} else {
echo(" No\n");
}
}
};
function main() {
$obj = new MyMatrix();
//Matrix A
$matrix1 = array(array(7, 1, 5, 6), array(1, 2, 4, 4), array(5, 4, 1, 1), array(6, 4, 1, 6));
$obj->is_symmetric($matrix1);
//Matrix B
$matrix2 = array(array(1, 2, 3, 6), array(2, 5, 4, 4), array(5, 4, 1, 1), array(6, 4, 1, 6));
$obj->is_symmetric($matrix2);
}
main();
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
/*
Node Js Program
Check if a matrix is symmetric
*/
class MyMatrix {
//Display element of matrix
show_data(matrix, row, col) {
for (var i = 0; i < row; ++i) {
for (var j = 0; j < col; ++j) {
process.stdout.write(" " + matrix[i][j]);
}
process.stdout.write("\n");
}
}
//Check that if a given matrix is symmetric or not
is_symmetric(matrix) {
var status = true;
var row = matrix.length;
var col = matrix[0].length;
if (row != col) {
status = false;
}
for (var i = 0; i < row && status == true; ++i) {
for (var j = 0; j < col && status == true; ++j) {
//Compare matrix element
if (matrix[i][j] != matrix[j][i]) {
status = false;
}
}
}
this.show_data(matrix, row, col);
if (status == true) {
process.stdout.write(" Yes\n");
} else {
process.stdout.write(" No\n");
}
}
}
function main(args) {
var obj = new MyMatrix();
//Matrix A
var matrix1 = [
[7, 1, 5, 6],
[1, 2, 4, 4],
[5, 4, 1, 1],
[6, 4, 1, 6]
];
obj.is_symmetric(matrix1);
//Matrix B
var matrix2 = [
[1, 2, 3, 6],
[2, 5, 4, 4],
[5, 4, 1, 1],
[6, 4, 1, 6]
];
obj.is_symmetric(matrix2);
}
main();
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
# Python 3 Program
# Check if a matrix is symmetric
class MyMatrix :
# Display element of matrix
def show_data(self, matrix, row, col) :
i = 0
while (i < row) :
j = 0
while (j < col) :
print(" ", matrix[i][j],end="")
j += 1
print(end="\n")
i += 1
# Check that if a given matrix is symmetric or not
def is_symmetric(self, matrix) :
status = True
row = len(matrix)
col = len(matrix[0])
if (row != col) :
status = False
i = 0
while (i < row and status == True) :
j = 0
while (j < col and status == True) :
# Compare matrix element
if (matrix[i][j] != matrix[j][i]) :
status = False
j += 1
i += 1
self.show_data(matrix, row, col)
if (status == True) :
print(" Yes")
else :
print(" No")
def main() :
obj = MyMatrix()
matrix1 = [
[7, 1, 5, 6],
[1, 2, 4, 4],
[5, 4, 1, 1],
[6, 4, 1, 6]
]
obj.is_symmetric(matrix1)
matrix2 = [
[1, 2, 3, 6],
[2, 5, 4, 4],
[5, 4, 1, 1],
[6, 4, 1, 6]
]
obj.is_symmetric(matrix2)
if __name__ == "__main__":
main()
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
# Ruby Program
# Check if a matrix is symmetric
class MyMatrix
# Display element of matrix
def show_data(matrix, row, col)
i = 0
while (i < row)
j = 0
while (j < col)
print(" ", matrix[i][j])
j += 1
end
print("\n")
i += 1
end
end
# Check that if a given matrix is symmetric or not
def is_symmetric(matrix)
status = true
row = matrix.length
col = matrix[0].length
if (row != col)
status = false
end
i = 0
while (i < row and status == true)
j = 0
while (j < col and status == true)
# Compare matrix element
if (matrix[i][j] != matrix[j][i])
status = false
end
j += 1
end
i += 1
end
self.show_data(matrix, row, col)
if (status == true)
print(" Yes\n")
else
print(" No\n")
end
end
end
def main()
obj = MyMatrix.new()
matrix1 = [
[7, 1, 5, 6],
[1, 2, 4, 4],
[5, 4, 1, 1],
[6, 4, 1, 6]
]
obj.is_symmetric(matrix1)
matrix2 = [
[1, 2, 3, 6],
[2, 5, 4, 4],
[5, 4, 1, 1],
[6, 4, 1, 6]
]
obj.is_symmetric(matrix2)
end
main()
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
/*
Scala Program
Check if a matrix is symmetric
*/
class MyMatrix {
//Display element of matrix
def show_data(matrix: Array[Array[Int]], row: Int, col: Int): Unit = {
var i: Int = 0;
while (i < row) {
var j: Int = 0;
while (j < col) {
print(" " + matrix(i)(j));
j += 1;
}
print("\n");
i += 1;
}
}
//Check that if a given matrix is symmetric or not
def is_symmetric(matrix: Array[Array[Int]]): Unit = {
var status: Boolean = true;
var row: Int = matrix.length;
var col: Int = matrix(0).length;
if (row != col) {
status = false;
}
var i: Int = 0;
while (i < row && status == true) {
var j: Int = 0;
while (j < col && status == true) {
//Compare matrix element
if (matrix(i)(j) != matrix(j)(i)) {
status = false;
}
j += 1;
}
i += 1;
}
this.show_data(matrix, row, col);
if (status == true) {
print(" Yes\n");
} else {
print(" No\n");
}
}
}
object Main {
def main(args: Array[String]): Unit = {
var obj: MyMatrix = new MyMatrix();
var matrix1: Array[Array[Int]] = Array(
Array(7, 1, 5, 6),
Array(1, 2, 4, 4),
Array(5, 4, 1, 1),
Array(6, 4, 1, 6));
obj.is_symmetric(matrix1);
var matrix2: Array[Array[Int]] = Array(
Array(1, 2, 3, 6),
Array(2, 5, 4, 4),
Array(5, 4, 1, 1),
Array(6, 4, 1, 6));
obj.is_symmetric(matrix2);
}
}
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
/*
Swift 4 Program
Check if a matrix is symmetric
*/
class MyMatrix {
//Display element of matrix
func show_data(_ matrix: [[Int]], _ row: Int, _ col: Int) {
var i: Int = 0;
while (i < row) {
var j: Int = 0;
while (j < col) {
print(" ", matrix[i][j],terminator:"");
j += 1;
}
print(terminator:"\n");
i += 1;
}
}
//Check that if a given matrix is symmetric or not
func is_symmetric(_ matrix: [[Int]]) {
var status: Bool = true;
let row: Int = matrix.count;
let col: Int = matrix[0].count;
if (row != col) {
status = false;
}
var i: Int = 0;
while (i < row && status == true) {
var j: Int = 0;
while (j < col && status == true) {
//Compare matrix element
if (matrix[i][j] != matrix[j][i]) {
status = false;
}
j += 1;
}
i += 1;
}
self.show_data(matrix, row, col);
if (status == true) {
print(" Yes\n");
} else {
print(" No\n");
}
}
}
func main() {
let obj: MyMatrix = MyMatrix();
let matrix1: [[Int]] = [
[7, 1, 5, 6],
[1, 2, 4, 4],
[5, 4, 1, 1],
[6, 4, 1, 6]
];
obj.is_symmetric(matrix1);
let matrix2: [[Int]] = [
[1, 2, 3, 6],
[2, 5, 4, 4],
[5, 4, 1, 1],
[6, 4, 1, 6]
];
obj.is_symmetric(matrix2);
}
main();
Output
7 1 5 6
1 2 4 4
5 4 1 1
6 4 1 6
Yes
1 2 3 6
2 5 4 4
5 4 1 1
6 4 1 6
No
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment