Open In App

Find the intersection of two Matrices

Last Updated : 09 Sep, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given two matrix A[][] and B[][] of same order m*n. The task is to find the intersection of both matrix as C, where: 

  • Cij = Aij if Aij = Bij
  • C = "*", otherwise.

Examples:  

Input : 
A[N][N] = {{2, 4, 6, 8},
           {1, 3, 5, 7},
           {8, 6, 4, 2},
           {7, 5, 3, 1}};

B[N][N] = {{0, 4, 3, 8},
           {1, 3, 5, 7},
           {8, 3, 6, 2},
           {4, 5, 3, 4}};
Output :
* 4 * 8 
1 3 5 7 
8 * * 2 
* 5 3 * 

As intersection of two set is a set which includes common elements to both set, similarly intersection of two matrix will include only corresponding common element and place "*" at the position of rest unmatching elements. 

For finding the intersection of both matrix simply iterate over their size and print * if element at particular position in both matrix are not equal else print the element.

Below is the implementation of the above approach: 

C++
// CPP program to find intersection
// of two matrices

#include <bits/stdc++.h>
#define N 4
#define M 4

using namespace std;

// Function to print the resultant matrix
void printIntersection(int A[][N], int B[][N])
{
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {

            // print element value for equal
            // elements else *
            if (A[i][j] == B[i][j])
                cout << A[i][j] << " ";
            else
                cout << "* ";
        }

        cout << "\n";
    }
}

// Driver Code
int main()
{
    int A[M][N] = { { 2, 4, 6, 8 },
                    { 1, 3, 5, 7 },
                    { 8, 6, 4, 2 },
                    { 7, 5, 3, 1 } };
    int B[M][N] = { { 2, 3, 6, 8 },
                    { 1, 3, 5, 2 },
                    { 8, 1, 4, 2 },
                    { 3, 5, 4, 1 } };

    printIntersection(A, B);

    return 0;
}
Java
//  Java program to find intersection
// of two matrices

import java.io.*;

class GFG {
  static int N = 4;
static int M = 4;



// Function to print the resultant matrix
static void printIntersection(int A[][], int B[][])
{
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {

            // print element value for equal
            // elements else *
            if (A[i][j] == B[i][j])
                System.out.print(A[i][j] +" ");
            else
                System.out.print( "* ");
        }

        System.out.println( " ");
    }
}

// Driver Code

    public static void main (String[] args) {
           int A[][] = { { 2, 4, 6, 8 },
                    { 1, 3, 5, 7 },
                    { 8, 6, 4, 2 },
                    { 7, 5, 3, 1 } };
    int B[][] = { { 2, 3, 6, 8 },
                    { 1, 3, 5, 2 },
                    { 8, 1, 4, 2 },
                    { 3, 5, 4, 1 } };

    printIntersection(A, B);

    }
}
// This code is contributed by anuj_67..
Python3
# Python 3 program to find intersection
# of two matrices
N, M = 4, 4

# Function to print the resultant matrix
def printIntersection(A, B) :

    for i in range(M) :
        for j in range(N) :

            # print element value for equal
            # elements else *
            if (A[i][j] == B[i][j]) :
                print(A[i][j], end = " ")
            else :
                print("* ", end = " ")
        
        print()
        
# Driver Code
if __name__ == "__main__" :
    
    A = [ [2, 4, 6, 8 ],
        [ 1, 3, 5, 7 ],
        [ 8, 6, 4, 2 ],
        [ 7, 5, 3, 1 ] ]
        
    B = [ [ 2, 3, 6, 8 ],
        [ 1, 3, 5, 2 ],
        [ 8, 1, 4, 2 ],
        [ 3, 5, 4, 1 ] ]

    printIntersection(A, B)

# This code is contributed by Ryuga
C#
// C# program to find intersection
// of two matrices

using System;

class GFG {
static int N = 4;
static int M = 4;



// Function to print the resultant matrix
static void printIntersection(int [,]A, int [,]B)
{
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {

            // print element value for equal
            // elements else *
            if (A[i,j] == B[i,j])
                Console.Write(A[i,j] +" ");
            else
                Console.Write( "* ");
        }

        Console.WriteLine( " ");
    }
}

// Driver Code

    public static void Main () {
        int [,]A = { { 2, 4, 6, 8 },
                    { 1, 3, 5, 7 },
                    { 8, 6, 4, 2 },
                    { 7, 5, 3, 1 } };
    int [,]B = { { 2, 3, 6, 8 },
                    { 1, 3, 5, 2 },
                    { 8, 1, 4, 2 },
                    { 3, 5, 4, 1 } };

    printIntersection(A, B);

    }
}
// This code is contributed by inder_verma..
PHP
<?php
// PHP program to find intersection
// of two matrices

// Function to print the resultant matrix
function printIntersection($A, $B)
{
    $N = 4; $M = 4;
    for ($i = 0; $i < $M; $i++)
    {
        for ($j = 0; $j < $N; $j++)
        {

            // print element value for equal
            // elements else *
            if ($A[$i][$j] == $B[$i][$j])
                echo $A[$i][$j] . " ";
            else
                echo "* ";
        }

        echo "\n";
    }
}

// Driver Code
$A = array(array(2, 4, 6, 8 ),
        array(1, 3, 5, 7 ),
        array(8, 6, 4, 2 ),
        array(7, 5, 3, 1 ) );
        
$B = array(array(2, 3, 6, 8 ),
        array(1, 3, 5, 2 ),
        array(8, 1, 4, 2 ),
        array(3, 5, 4, 1 ) );

printIntersection($A, $B);

// This code is contributed 
// by Akanksha Rai
?>
JavaScript
<script>

// Javascript program to find intersection
// of two matrices

var N = 4
var M = 4

// Function to print the resultant matrix
function printIntersection( A, B)
{
    for (var i = 0; i < M; i++) {
        for (var j = 0; j < N; j++) {

            // print element value for equal
            // elements else *
            if (A[i][j] == B[i][j])
                document.write( A[i][j] + " ");
            else
                document.write( "* ");
        }

        document.write( "<br>");
    }
}

// Driver Code
var A = [ [ 2, 4, 6, 8 ],
                [ 1, 3, 5, 7 ],
                [ 8, 6, 4, 2 ],
                [ 7, 5, 3, 1 ] ];
var B = [ [ 2, 3, 6, 8 ],
                [ 1, 3, 5, 2 ],
                [ 8, 1, 4, 2 ],
                [ 3, 5, 4, 1 ] ];
printIntersection(A, B);

</script>  

Output
2 * 6 8 
1 3 5 * 
8 * 4 2 
* 5 * 1 

Complexity Analysis:

  • Time Complexity: O(M * N)
  • Auxiliary Space: O(1)

Next Article
Article Tags :
Practice Tags :

Similar Reads