Skip to content
Related Articles

Related Articles

Improve Article
Different Operations on Matrices
  • Difficulty Level : Easy
  • Last Updated : 27 Feb, 2021

For introduction on matrices, you can refer the following article: Matrix Introduction 
In this article, we will discuss various operations on matrices and their properties: 

Matrices Addition – 
The addition of two matrices A m*n and Bm*n gives a matrix Cm*n. The elements of C are sum of corresponding elements in A and B which can be shown as: 

1

The algorithm for addition of matrices can be written as: 

for i in 1 to m
   for j in 1 to n
      cij = aij + bij

C++




// C++ Program for matrix addition
 
#include <iostream>
using namespace std;
 
int main()
{
 
    int n = 2, m = 2;
    int a[n][m] = { { 2, 5 }, { 1, 7 } };
    int b[n][m] = { { 3, 7 }, { 2, 9 } };
 
    int c[n][m];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++) {
            c[i][j] = a[i][j] + b[i][j];
        }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++)
            cout << c[i][j] << " ";
        cout << endl;
    }
}

Output:



5 12 
3 16 

Time Complexity: O(n * m)

Auxiliary Space: O(n * m)
Key points:

  • Addition of matrices is commutative which means A+B = B+A
  • Addition of matrices is associative which means A+(B+C) = (A+B)+C
  • The order of matrices A, B and A+B is always same
  • If order of A and B is different, A+B can’t be computed
  • The complexity of addition operation is O(m*n) where m*n is order of matrices

Matrices Subtraction – 
The subtraction of two matrices Am*n and Bm*n gives a matrix Cm*n. The elements of C are difference of corresponding elements in A and B which can be represented as: 
 

2

The algorithm for subtraction of matrices can be written as:  

for i in 1 to m
   for j in 1 to n
      cij = aij-bij

C++




// C++ Program for matrix substraction
 
#include <iostream>
using namespace std;
 
int main()
{
 
    int n = 2, m = 2;
    int a[n][m] = { { 2, 5 }, { 1, 7 } };
    int b[n][m] = { { 3, 7 }, { 2, 9 } };
 
    int c[n][m];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++) {
            c[i][j] = a[i][j] - b[i][j];
        }
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++)
            cout << c[i][j] << " ";
        cout << endl;
    }
}

Output:

-1 -2 
-1 -2 

Key points:

  • Subtraction of matrices is non-commutative which means A-B ≠ B-A
  • Subtraction of matrices is non-associative which means A-(B-C) ≠ (A-B)-C
  • The order of matrices A, B and A-B is always same
  • If order of A and B is different, A-B can’t be computed
  • The complexity of subtraction operation is O(m*n) where m*n is order of matrices

Matrices Multiplication – 
The multiplication of two matrices Am*n and Bn*p gives a matrix Cm*p. It means number of columns in A must be equal to number of rows in B to calculate C=A*B. To calculate element c11, multiply elements of 1st row of A with 1st column of B and add them (5*1+6*4) which can be shown as: 
 

1

The algorithm for multiplication of matrices A with order m*n and B with order n*p can be written as: 

for i in 1 to m
   for j in 1 to p
      cij = 0
      for k in 1 to n
         cij += aik*bkj

C++




// C++ Program for matrix Multiplication
 
#include <iostream>
using namespace std;
 
int main()
{
 
    int n = 2, m = 2;
    int a[n][m] = { { 2, 5 }, { 1, 7 } };
    int b[n][m] = { { 3, 7 }, { 2, 9 } };
 
    int c[n][m];
    int i, j, k;
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
        {
            c[i][j] = 0;
            for (k = 0; k < n; k++)
                c[i][j] += a[i][k] * b[k][j];
        }
    }
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            cout << c[i][j] << " ";
        cout << endl;
    }
}

Output:

16 59 
17 70

Key points: 

  • Multiplication of matrices is non-commutative which means A*B ≠ B*A
  • Multiplication of matrices is associative which means A*(B*C) = (A*B)*C
  • For computing A*B, the number of columns in A must be equal to number of rows in B
  • Existence of A*B does not imply existence of B*A
  • The complexity of multiplication operation (A*B) is O(m*n*p) where m*n and n*p are order of A and B respectively
  • The order of matrix C computed as A*B is m*p where m*n and n*p are order of A and B respectively

Read next – Determinant of a Matrix, Adjoint and Inverse of a Matrix

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer DSA Live Classes 




My Personal Notes arrow_drop_up
Recommended Articles
Page :