C Program To Check whether Matrix is Skew Symmetric or not
Last Updated :
21 Jun, 2022
A Skew Symmetric Matrix or Anti-Symmetric Matrix is a square matrix whose transpose is negative to that of the original matrix. If the entry in the ith row and jth column of a matrix is a[i][j], i.e. if A = (a[i][j]) then the skew symmetric condition is -A = -a[j][i].
Examples :
Input : matrix: 0 5 -4
-5 0 1
4 -1 0
Output:
Transpose matrix: 0 -5 4
5 0 -1
-4 1 0
Skew Symmetric matrix
Approach:
- Find the transpose of the input matrix.
- If the input matrix is equal to the negative of its transpose matrix, then the matrix is Skew Symmetrical.
Below is the implementation of the above approach:
Java
// java program to check
// whether given matrix
// is skew-symmetric or not
import java.io.*;
class GFG {
static int ROW =3;
static int COL =3;
// Utility function to create transpose matrix
static void transpose(int transpose_matrix[][],
int matrix[][])
{
for (int i = 0; i < ROW; i++)
for (int j = 0; j < COL; j++)
transpose_matrix[j][i] = matrix[i][j];
}
// Utility function to check skew - symmetric
// matrix condition
static boolean check(int transpose_matrix[][],
int matrix[][])
{
for (int i = 0; i < ROW; i++)
for (int j = 0; j < COL; j++)
if (matrix[i][j] != -transpose_matrix[i][j])
return false;
return true;
}
// Utility function to print a matrix
static void printMatrix(int matrix[][])
{
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
System.out.print(matrix[i][j] + " ");
System.out.println();
}
}
// Driver program to test above functions
public static void main (String[] args) {
int matrix[][] = {
{0, 5, -4},
{-5, 0, 1},
{4, -1, 0},
};
int transpose_matrix[][] = new int[ROW][COL];
// Function create transpose matrix
transpose(transpose_matrix, matrix);
System.out.println ("Transpose matrix: ");
printMatrix(transpose_matrix);
// Check whether matrix is skew-symmetric or not
if (check(transpose_matrix, matrix))
System.out.println("Skew Symmetric Matrix");
else
System.out.println("Not Skew Symmetric Matrix");
}
}
// This code is contributed by vt_m.
C++
// C program to check whether given matrix
// is skew-symmetric or not
#include <stdio.h>
#include <stdlib.h>
#define ROW 3
#define COL 3
// Utility function to create transpose matrix
void transpose(int transpose_matrix[ROW][COL],
int matrix[ROW][COL])
{
for (int i = 0; i < ROW; i++)
for (int j = 0; j < COL; j++)
transpose_matrix[j][i] = matrix[i][j];
}
// Utility function to check skew - symmetric
// matrix condition
bool check(int transpose_matrix[ROW][COL],
int matrix[ROW][COL])
{
for (int i = 0; i < ROW; i++)
for (int j = 0; j < COL; j++)
if (matrix[i][j] != -transpose_matrix[i][j])
return false;
return true;
}
// Utility function to print a matrix
void printMatrix(int matrix[ROW][COL])
{
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
printf("%d ", matrix[i][j]);
printf("\n");
}
}
// Driver program to test above functions
int main()
{
int matrix[ROW][COL] = {
{0, 5, -4},
{-5, 0, 1},
{4, -1, 0},
};
int transpose_matrix[ROW][COL];
// Function create transpose matrix
transpose(transpose_matrix, matrix);
printf ("Transpose matrix: \n");
printMatrix(transpose_matrix);
// Check whether matrix is skew-symmetric or not
if (check(transpose_matrix, matrix))
printf("Skew Symmetric Matrix");
else
printf("Not Skew Symmetric Matrix");
return 0;
}
C#
// C# program to check
// whether given matrix
// is skew-symmetric or not
using System;
class GFG
{
static int ROW =3;
static int COL =3;
// Utility function to
// create transpose matrix
static void transpose(int [,]transpose_matrix,
int [,]matrix)
{
for (int i = 0; i < ROW; i++)
for (int j = 0; j < COL; j++)
transpose_matrix[j,i] = matrix[i,j];
}
// Utility function to check
// skew - symmetric matrix
// condition
static bool check(int [,]transpose_matrix,
int [,]matrix)
{
for (int i = 0; i < ROW; i++)
for (int j = 0; j < COL; j++)
if (matrix[i, j] !=
-transpose_matrix[i, j])
return false;
return true;
}
// Utility function
// to print a matrix
static void printMatrix(int [,]matrix)
{
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
Console.Write(matrix[i, j] +
" ");
Console.WriteLine();
}
}
// Driver Code
public static void Main ()
{
int [,]matrix = {{0, 5, -4},
{-5, 0, 1},
{4, -1, 0},};
int [,]transpose_matrix = new int[ROW, COL];
// Function create transpose matrix
transpose(transpose_matrix, matrix);
Console.WriteLine("Transpose matrix: ");
printMatrix(transpose_matrix);
// Check whether matrix is
// skew-symmetric or not
if (check(transpose_matrix, matrix))
Console.WriteLine("Skew Symmetric Matrix");
else
Console.WriteLine("Not Skew Symmetric Matrix");
}
}
// This code is contributed by anuj_67.
Python3
# Python 3 program to check
# whether given matrix
# is skew-symmetric or not
ROW=3
COL=3
# Utility function to
# create transpose matrix
def transpose(transpose_matrix,matrix):
for i in range (ROW):
for j in range(COL):
transpose_matrix[j][i] = matrix[i][j]
# Utility function to
# check skew - symmetric
# matrix condition
def check(transpose_matrix,matrix):
for i in range(ROW):
for j in range(COL):
if (matrix[i][j] != -transpose_matrix[i][j]):
return False
return True
# Utility function to print a matrix
def printMatrix(matrix):
for i in range (ROW):
for j in range(COL):
print(matrix[i][j]," ",end="")
print()
# Driver program to test above functions
matrix= [
[0, 5, -4],
[-5, 0, 1],
[4, -1, 0],
]
transpose_matrix=[[0 for i in range(3)] for j in range(3)]
# Function create transpose matrix
transpose(transpose_matrix, matrix)
print("Transpose matrix:")
printMatrix(transpose_matrix)
# Check whether matrix is
# skew-symmetric or not
if (check(transpose_matrix, matrix)):
print("Skew Symmetric Matrix")
else:
print("Not Skew Symmetric Matrix")
# This code is contributed
# by Azkia Anam.
JavaScript
// Javascript Program to check whether given matrix is skew-symmetric or not
var n = 3, m = 3;
var matrix = [[ 0, 5, -4 ], [ -5, 0, 1 ], [ 4, -1, 0 ]];
var transpose_matrix = [[], [], []];
var transpose=function(transpose_matrix, matrix){
for (var i = 0; i < n; i++)
for (var j = 0; j < m; j++)
transpose_matrix[j][i] = matrix[i][j];
}
// Utility function to check skew - symmetric
// matrix condition
var check=function(transpose_matrix,matrix)
{
for (var i = 0; i < n; i++)
for (var j = 0; j < m; j++)
if (matrix[i][j] != -transpose_matrix[i][j])
return false;
return true;
}
// Utility function to print a matrix
var printMatrix=function(matrix)
{
for (var i = 0; i < n; i++)
{
for (var j = 0; j < m; j++)
console.log(matrix[i][j]);
console.log('\n');
}
}
transpose(transpose_matrix, matrix);
console.log("Transpose matrix: \n");
printMatrix(transpose_matrix);
// Check whether matrix is skew-symmetric or not
if (check(transpose_matrix, matrix))
console.log("Skew Symmetric Matrix");
else
console.log("Not Skew Symmetric Matrix");
// This code is contributed by Sajal Aggarwal.
OutputTranspose matrix:
0 -5 4
5 0 -1
-4 1 0
Skew Symmetric Matrix
Time complexity: O(ROW x COL).
Auxiliary Space: O(ROW x COL).
References : Wikipedia
Explore
DSA Fundamentals
Data Structures
Algorithms
Advanced
Interview Preparation
Practice Problem