Program for addition of two matrices
Given two N x M matrices. Find a N x M matrix as the sum of given matrices each value at the sum of values of corresponding elements of the given two matrices.
Approach: Below is the idea to solve the problem.
Iterate over every cell of matrix (i, j), add the corresponding values of the two matrices and store in a single matrix i.e. the resultant matrix.
Follow the below steps to Implement the idea:
- Initialize a resultant matrix res[N][M].
- Run a for loop for counter i as each row and in each iteration:
- Run a for loop for counter j as each column and in each iteration:
- Add values of the two matrices for index i, j and store in res[i][j].
- Run a for loop for counter j as each column and in each iteration:
- Return res.
Below is the Implementation of above approach.
C++
// C++ program for addition // of two matrices #include <bits/stdc++.h> using namespace std; #define N 4 // This function adds A[][] and B[][], and stores // the result in C[][] void add( int A[][N], int B[][N], int C[][N]) { int i, j; for (i = 0; i < N; i++) for (j = 0; j < N; j++) C[i][j] = A[i][j] + B[i][j]; } // Driver code int main() { int A[N][N] = { { 1, 1, 1, 1 }, { 2, 2, 2, 2 }, { 3, 3, 3, 3 }, { 4, 4, 4, 4 } }; int B[N][N] = { { 1, 1, 1, 1 }, { 2, 2, 2, 2 }, { 3, 3, 3, 3 }, { 4, 4, 4, 4 } }; int C[N][N]; // To store result int i, j; // Function Call add(A, B, C); cout << "Result matrix is " << endl; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) cout << C[i][j] << " " ; cout << endl; } return 0; } // This code is contributed by rathbhupendra |
C
// C Program to add two matrix #include <stdio.h> #define N 4 // This function adds A[][] and B[][], and stores // the result in C[][] void add( int A[][N], int B[][N], int C[][N]) { int i, j; for (i = 0; i < N; i++) for (j = 0; j < N; j++) C[i][j] = A[i][j] + B[i][j]; } int main() { int A[N][N] = { { 1, 1, 1, 1 }, { 2, 2, 2, 2 }, { 3, 3, 3, 3 }, { 4, 4, 4, 4 } }; int B[N][N] = { { 1, 1, 1, 1 }, { 2, 2, 2, 2 }, { 3, 3, 3, 3 }, { 4, 4, 4, 4 } }; int C[N][N]; // To store result int i, j; add(A, B, C); printf ( "Result matrix is \n" ); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) printf ( "%d " , C[i][j]); printf ( "\n" ); } return 0; } |
Java
// Java program for addition // of two matrices class GFG { static final int N = 4 ; // This function adds A[][] and B[][], and stores // the result in C[][] static void add( int A[][], int B[][], int C[][]) { int i, j; for (i = 0 ; i < N; i++) for (j = 0 ; j < N; j++) C[i][j] = A[i][j] + B[i][j]; } // Driver code public static void main(String[] args) { int A[][] = { { 1 , 1 , 1 , 1 }, { 2 , 2 , 2 , 2 }, { 3 , 3 , 3 , 3 }, { 4 , 4 , 4 , 4 } }; int B[][] = { { 1 , 1 , 1 , 1 }, { 2 , 2 , 2 , 2 }, { 3 , 3 , 3 , 3 }, { 4 , 4 , 4 , 4 } }; // To store result int C[][] = new int [N][N]; int i, j; add(A, B, C); System.out.print( "Result matrix is \n" ); for (i = 0 ; i < N; i++) { for (j = 0 ; j < N; j++) System.out.print(C[i][j] + " " ); System.out.print( "\n" ); } } } // This code is contributed by Anant Agarwal. |
Python3
# Python3 program for addition # of two matrices N = 4 # This function adds A[][] # and B[][], and stores # the result in C[][] def add(A, B, C): for i in range (N): for j in range (N): C[i][j] = A[i][j] + B[i][j] # driver code A = [[ 1 , 1 , 1 , 1 ], [ 2 , 2 , 2 , 2 ], [ 3 , 3 , 3 , 3 ], [ 4 , 4 , 4 , 4 ]] B = [[ 1 , 1 , 1 , 1 ], [ 2 , 2 , 2 , 2 ], [ 3 , 3 , 3 , 3 ], [ 4 , 4 , 4 , 4 ]] C = A[:][:] # To store result add(A, B, C) print ( "Result matrix is" ) for i in range (N): for j in range (N): print (C[i][j], " " , end = '') print () # This code is contributed # by Anant Agarwal. |
C#
// C# program for addition // of two matrices using System; class GFG { static int N = 4; // This function adds A[][] and B[][], and stores // the result in C[][] static void add( int [, ] A, int [, ] B, int [, ] C) { int i, j; for (i = 0; i < N; i++) for (j = 0; j < N; j++) C[i, j] = A[i, j] + B[i, j]; } // Driver code public static void Main() { int [, ] A = { { 1, 1, 1, 1 }, { 2, 2, 2, 2 }, { 3, 3, 3, 3 }, { 4, 4, 4, 4 } }; int [, ] B = { { 1, 1, 1, 1 }, { 2, 2, 2, 2 }, { 3, 3, 3, 3 }, { 4, 4, 4, 4 } }; // To store result int [, ] C = new int [N, N]; int i, j; add(A, B, C); Console.WriteLine( "Result matrix is " ); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) Console.Write(C[i, j] + " " ); Console.WriteLine(); } } } // This code is contributed by vt_m. |
PHP
<?php // This function adds A[][] and // B[][], and stores the result in C[][] function add(& $A , & $B , & $C ) { $N = 4; for ( $i = 0; $i < $N ; $i ++) for ( $j = 0; $j < $N ; $j ++) $C [ $i ][ $j ] = $A [ $i ][ $j ] + $B [ $i ][ $j ]; } // Driver code $A = array ( array (1, 1, 1, 1), array (2, 2, 2, 2), array (3, 3, 3, 3), array (4, 4, 4, 4)); $B = array ( array (1, 1, 1, 1), array (2, 2, 2, 2), array (3, 3, 3, 3), array (4, 4, 4, 4)); $N = 4; add( $A , $B , $C ); echo "Result matrix is \n" ; for ( $i = 0; $i < $N ; $i ++) { for ( $j = 0; $j < $N ; $j ++) { echo $C [ $i ][ $j ]; echo " " ; } echo "\n" ; } // This code is contributed // by Shivi_Aggarwal ?> |
Javascript
<script> // Javascript program for addition // of two matrices let N = 4; // This function adds A[][] and B[][], and stores // the result in C[][] function add(A, B, C) { let i, j; for (i = 0; i < N; i++) for (j = 0; j < N; j++) C[i][j] = A[i][j] + B[i][j]; } // Driver code let A = [ [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]; let B = [ [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]; // To store result let C = new Array(N); for (let k = 0; k < N; k++) C[k] = new Array(N); let i, j; add(A, B, C); document.write( "Result matrix is <br>" ); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) document.write(C[i][j] + " " ); document.write( "<br>" ); } </script> |
Output
Result matrix is 2 2 2 2 4 4 4 4 6 6 6 6 8 8 8 8
Time complexity: O(n2).
Auxiliary space: O(n2). since n2 extra space has been taken for storing results
The program can be extended for rectangular matrices. The following post can be useful for extending this program.
Contact Us