Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

C++ Program for Identity Matrix

  • Last Updated : 13 Jan, 2022

Introduction to Identity Matrix :

 The dictionary definition of an Identity Matrix is a square matrix in which all the elements of the principal or main diagonal are 1’s and all other elements are zeros. In the below image, every matrix is an Identity Matrix. 
 

In linear algebra, this is sometimes called as a Unit Matrix, of a square matrix (size = n x n) with ones on the main diagonal and zeros elsewhere. The identity matrix is denoted by “ I “. Sometimes U or E is also used to denote an Identity Matrix. 
A property of the identity matrix is that it leaves a matrix unchanged if it is multiplied by an Identity Matrix.

Examples:  

Input  : 2
Output : 1 0
         0 1

Input :  4
Output : 1 0 0 0
         0 1 0 0
         0 0 1 0
         0 0 0 1
The explanation is simple. We need to make all
the elements of principal or main diagonal as 
1 and everything else as 0.

Program to print Identity Matrix : 
The logic is simple. You need to the print 1 in those positions where row is equal to column of a matrix and make all other positions as 0. 

C++




// C++ program to print Identity Matrix
#include<bits/stdc++.h>
using namespace std;
  
int Identity(int num)
{
    int row, col;
      
    for (row = 0; row < num; row++)
    {
        for (col = 0; col < num; col++)
        {
            // Checking if row is equal to column 
            if (row == col)
                cout << 1 << " ";
            else
                cout << 0 << " ";
        
        cout << endl;
    }
    return 0;
}
  
// Driver Code
int main()
{
    int size = 5;
    Identity(size);
    return 0;
}
  
// This code is contributed by shubhamsingh10

Output: 

1  0  0  0  0  
0  1  0  0  0  
0  0  1  0  0  
0  0  0  1  0  
0  0  0  0  1  

 
Program to check if a given square matrix is Identity Matrix : 

C++




// CPP program to check if a given matrix is identity
#include<iostream>
using namespace std;
  
const int MAX = 100;
  
bool isIdentity(int mat[][MAX], int N)
    for (int row = 0; row < N; row++)
    {
        for (int col = 0; col < N; col++)
        {
            if (row == col && mat[row][col] != 1)
                return false;
            else if (row != col && mat[row][col] != 0)
                return false;
        
    }
    return true;
}
  
// Driver Code
int main()
{
    int N = 4;
    int mat[][MAX] = {{1, 0, 0, 0}, 
                    {0, 1, 0, 0},
                    {0, 0, 1, 0},
                    {0, 0, 0, 1}}; 
    if (isIdentity(mat, N))
       cout << "Yes ";
    else
       cout << "No ";
    return 0;
}

Output:

Yes

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!