Categories
Class 11 Class 12

Check If Two Matrices Are Equal

Two matrices are said to be equal if they have the same dimension and their corresponding elements are equal.

For example, the two matrices A and B given below are equal:

Matrix A:

123
245
356

Matrix B:

123
245
356

Design a class EqMat to check if two matrices are equal or not. Assume that the two matrices have the same dimension.

Some of the members of the class are given below:

Class name: EqMat
Data members/instance variables:
a[][]: to store integer elements.
m: to store the number of rows.
n: to store the number of columns.
Member functions/methods:
EqMat(int m, int n): parameterised constructor to initialise the data members m and n.
void readArray(): to enter elements in the array.
int check(EqMat p, EqMat q): checks if the parameterised objects p and q are equal and returns 1 if true, otherwise returns 0.
void print(): displays the array elements.

Define the class EqMat giving details of the constructor, void readArray(), int check(EqMat, EqMat) and void print(). Define the main() function to create objects and call the functions accordingly to enable the task.

Program:

import java.io.*;
class EqMat{
    private int a[][];
    private int m;
    private int n;
    public EqMat(int m, int n){
        this.m = m;
        this.n = n;
        a = new int[m][n];
    }
    public void readArray()throws IOException{
        InputStreamReader in = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(in);
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++)
                a[i][j] = Integer.parseInt(br.readLine());
        }
    }
    public int check(EqMat p, EqMat q){
        int status = 1;
        outer:
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++){
                if(p.a[i][j] != q.a[i][j]){
                    status = 0;
                    break outer;
                }
            }
        }
        return status;
    }
    public void print(){
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++)
                System.out.print(a[i][j] + "\t");
            System.out.println();
        }
    }
    public static void main(String args[])
    throws IOException{
        InputStreamReader in = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(in);
        System.out.print("Number of rows: ");
        int rows = Integer.parseInt(br.readLine());
        System.out.print("Number of columns: ");
        int columns = Integer.parseInt(br.readLine());
        EqMat obj1 = new EqMat(rows, columns);
        EqMat obj2 = new EqMat(rows, columns);
        System.out.println("Enter first matrix elements:");
        obj1.readArray();
        System.out.println("Enter second matrix elements:");
        obj2.readArray();
        System.out.println("First Matrix:");
        obj1.print();
        System.out.println("Second Matrix:");
        obj2.print();
        EqMat temp = new EqMat(rows, columns);
        if(temp.check(obj1, obj2) == 1)
            System.out.println("Matrices are equal.");
        else
            System.out.println("Matrices are unequal.");
    }
}

2 replies on “Check If Two Matrices Are Equal”

Leave a Reply