How to Display an Identity Matrix in Java?


In Java, Array is an object. It is a non-primitive data type which stores values of similar data type. The matrix in java is nothing but a multi-dimensional array which represents multiple rows and columns.

An identity matrix is a square matrix where all the elements of the main diagonal (i.e., the diagonal from the top-left to the bottom-right corner) are 1, and all the other elements are 0. It is denoted by the symbol "I" or "In", where "n" represents the size of the matrix.

The identity matrix is important in linear algebra because it acts as the identity element for matrix multiplication, meaning that when a matrix is multiplied by an identity matrix, the result is the original matrix.

Here we have given the matrix length and we have to display an identity matrix of that length.

Let’s start!

To show you some instances

Instance-1

Given matrix length = 2

Identity matrix of 2*2 =

1 0 
0 1

Instance-2

Given matrix length = 4

Identity matrix of 2*2 =

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

Instance-3

Given matrix length = 6

Identity matrix of 2*2 =

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

Algorithm

Algorithm-1

  • Step-1 − This program creates an identity matrix of size ‘n’ using a 2D array named identity.

  • Step-2 − It uses nested for-loops to iterate over each element of the matrix and checks if the current element is on the diagonal (where row index equals column index).

  • Step-3 − If it is on the diagonal, it sets the element to 1, otherwise, it sets it to 0.

  • Step-4 − Once the matrix is filled with the appropriate values, it uses another set of nested for-loops to display the matrix on the console.

  • Step-5 − Finally, it prints a newline after each row is printed to display the matrix in a square shape.

Algorithm-2

  • Step-1 − This program creates an identity matrix of size n using a 2D array named identity.

  • Step-2 − However, instead of using nested for-loops to fill the diagonal elements with 1 and other elements with 0, it uses the Arrays.fill() method to fill each row of the matrix with 0 initially.

  • Step-3 − Then, it uses another for-loop to set the diagonal element of each row to 1.

  • Step-4 − Finally, it uses another set of nested for-loops to display the matrix on the console.

  • Step-5 − it prints a newline after each row is printed to display the matrix in a square shape.

Syntax

1. The length() method in Java returns the length of the given matrix.

Below refers to the syntax of it −

inputMatrix.lenght

where, ‘inputMatrix’ refers to the given matrix.

2. IntStream.range() is a method in Java that generates a sequential stream of integers from startInclusive to endExclusive - 1.

IntStream.range(startInclusive, endExclusive)

It can be used to perform operations on a set of integers. For example, in the second code, it is used to loop through the rows and columns of the matrix.

The method forEach is then called on the stream to perform an action for each element in the stream.

Multiple Approaches

We have provided the solution in different approaches.

  • By Using Nested for Loops

  • By Using Arrays.fill() Method

Let’s see the program along with its output one by one.

Approach-1: By Using Nested for Loops

In this approach, matrix length will be initialized in the program. Then as per the algorithm using nested for loop display an identity matrix of that length.

Example

public class Main {
   public static void main(String[] args) {
      int n = 5; // size of the matrix
      int[][] identity = new int[n][n];
      
      // Fill the diagonal elements with 1 and other elements with 0
      for(int i = 0; i < n; i++) {
         for(int j = 0; j < n; j++) {
            if(i == j)
               identity[i][j] = 1;
            else
               identity[i][j] = 0;
         }
      }
      
      // Display the matrix
      for(int i = 0; i < n; i++) {
         for(int j = 0; j < n; j++) {
            System.out.print(identity[i][j] + " ");
         }
         System.out.println(); // print a newline after each row is printed
      }
   }
}

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

Approach-2: By Using Arrays.fill() Method

In this approach, matrix length will be initialized in the program. Then as per the algorithm using Arrays.fill() method display an identity matrix of that length.

Example

import java.util.Arrays;
public class Main {
   public static void main(String[] args) {
      int n = 8; // size of the matrix
      int[][] identity = new int[n][n];

      // Fill the diagonal elements with 1 using Arrays.fill() method
      for(int i = 0; i < n; i++) {
         Arrays.fill(identity[i], 0); // fill each row with 0 initially
         identity[i][i] = 1; // set the diagonal element to 1
      }
      
      // Display the matrix
      for(int i = 0; i < n; i++) {
         for(int j = 0; j < n; j++) {
            System.out.print(identity[i][j] + " ");
         }
         System.out.println(); // print a newline after each row is printed
      }
   }
}

Output

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

In this article, we explored different approaches to display an identity matrix by using Java programming language.

Updated on: 04-May-2023

538 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements