EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Matrix Multiplication in C++

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » Matrix Multiplication in C++

Matrix Multiplication in C++

Introduction to Matrix multiplication in C++

Matrix multiplication in C++ is a binary operation in which two matrices can be added, subtracted and multiplied. Input for row number, column number, first matrix elements, and second matrix elements is taken from the consumer to multiply the matrices. Then the matrices entered by the consumer are multiplied.

Examples of Matrix Multiplication

The examples of the following are given below:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Example #1

Code:

#include <iostream>
using namespace std;
int main()
{
int a[10][10],b[10][10],mul[10][10],m,c,p,j,k;
cout<<" Enter the number of printing the rows=";
cin>>m;
cout<<"Enter the number of printing the column=";
cin>>c;
cout<<"Enter the first matrix of element=\n";
for(p=0;p<m;p++)
{
for(j=0;j<c;j++)
{
cin>>a[p][j];
}
}
cout<<"Enter the second matrix of element=\n";
for(p=0;p<m;p++)
{
for(j=0;j<c;j++)
{
cin>>b[p][j];
}
}
cout<<"multiply of the matrix=\n";
for(p=0;p<m;p++)
{
for(j=0;j<c;j++)
{
mul[p][j]=0;
for(k=0;k<c;k++)
{
mul[p][j]+=a[p][k]*b[k][j];
}
}
}
//for printing result
for(p=0;p<m;p++)
{
for(j=0;j<c;j++)
{
cout<<mul[p][j]<<" ";
}
cout<<"\n";
}
return 0;
}

Output:

matrix multiplication in C++ Example1

Example #2

In this example, you are going to see the C++ program for two rectangular matrices two rectangular matrices

Code:

#include<bits/stdc++.h>
using namespace std;
// Multiplies 2 matrices first is matricsA[][] and second is matricsB[][] and prints result.
// (a1) x (a2) and (b1) x (b2) are
// dimensions of given matrices.
void multiply(int a1, int a2, int matA[][2],
int b1, int b2, int matB[][2])
{
int x, i, j;
int res[a1][b2];
for (i = 0; i < a1; i++)
{
for (j = 0; j < b2; j++)
{
res[i][j] = 0;
for (x = 0; x < a2; x++)
{
*(*(res + i) + j) += *(*(matA + i) + x) *
*(*(matB + x) + j);
}
}
}
for (i = 0; i < a1; i++)
{
for (j = 0; j < b2; j++)
{
cout << *(*(res + i) + j) << " ";
}
cout << "\n";
}
}
// Driver code
int main()
{
int matA[][2] = { { 4, 4 }, { 3, 4 } };
int matB[][2] = { { 2, 2 }, { 2, 3 } };
int a1 = 2, a2 = 2, b1 = 2, b2 = 2;
multiply(a1, a2, matA, b1, b2, matB);
return 0;
}

Output:

matrix multiplication in C++ example2

Example #3

In this example, you are going to the see C++ program two Square matrices

Code:

#include <iostream>
using namespace std;
#define N 4
// This function will multiplies A1[][] and B2[][], and it will stores the result in this res[][] void multiply(int A1[][N],
int B2[][N],
int res[][N])
{
int a, z, k;
for (a = 0; a < N; a++)
{
for (z = 0; z < N; z++)
{
res[a][z] = 0;
for (k = 0; k < N; k++)
res[a][z] += A1[a][k] *
B2[k][z];
}
}
}
// Driver Code
int main()
{
int a, z;
int res[N][N]; // this is use to store result
int A1[N][N] = {{5, 5, 5, 5},
{6, 6, 6, 6},
{7, 7, 7, 7},
{8, 8, 8, 8}};
int B2[N][N] = {{5, 5, 5, 5},
{6, 6, 6, 6},
{7, 7, 7, 7},
{8, 8, 8, 8}};
multiply(A1, B2, res);
cout << "Resulted matrix are as follow \n";
for (a = 0; a < N; a++)
{
for (z = 0; z < N; z++)
cout << res[a][z] << " ";
cout << "\n";
}
return 0;
}

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,890 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

Output:

matrix multiplication in C++ example3

Example #4

Code:

#include<iostream>
using namespace std;
int main ()
{
int F1, c1, F2, c2, i, j, k;
int A[5][5], B[5][5], C[5][5];
cout << "Enter the number of columns and rows of matrix A : ";
cin >> F1 >> c1;
cout << "Enter number of Cloumns and rows of matrix B : ";
cin >> F2 >> c2;
if (c1 != F2)
{
cout << "Matrices can't be multiplied..";
exit(0);
}
cout << "Input the elements of matrix A : ";
for (i = 0; i < F1; i++)
for (j = 0; j < c1; j++)
cin >> A[i][j];
cout << "Input the elements of matrix B : ";
for (i = 0; i < F2; i++)
for (j = 0; j < c2; j++)
cin >> B[i][j];
for (i = 0; i < F1; i++)
{
for (j = 0; j < c2; j++)
{
C[i][j] = 0;
for (k = 0; k < F2; k++)
{
C[i][j] += A[i][k] * B[k][j];
}
}
}
cout << "Product of matrices\n";
for (i = 0; i < F1; i++)
{
for (j = 0; j < c2; j++)
cout << C[i][j] << "  ";
cout << "\n";
}
return 0;
}

Output:

Product matrix

Explanation of program

The user is asked to enter the matrix A and matrix B rows and columns. If matrix A’s number of columns doesn’t suit matrix B’s number, matrices can’t be multiplied. Similarly, matrices for loops are combined and the result is placed in matrix C if they are equal.

Recommended Articles

This is a guide to Matrix Multiplication in C++. Here we discuss the introduction and the examples of Matrix Multiplication in C++ along with the codes & outputs. You can also go through our other suggested articles to learn more –

  1. Matrix Multiplication in NumPy
  2. Matrix Multiplication in Matlab
  3. Matrix in NumPy
  4. Identity Matrix in Matlab

C++ Training (4 Courses, 3 Projects, 4 Quizzes)

4 Online Courses

5 Hands-on Projects

37+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training (4 Courses, 3 Projects, 4 Quizzes) Learn More