Matrix Multiplication in C++
Matrix Multiplication in C++ (Multiply Two Matrix).
1#include <iostream>2using namespace std;34int main() {5 int rows1 = 2, cols1 = 3;6 int rows2 = 3, cols2 = 2;78 int matrix1[2][3] = {{1, 2, 3}, {4, 5, 6}};9 int matrix2[3][2] = {{7, 8}, {9, 10}, {11, 12}};10 int result[2][2] = {{0, 0}, {0, 0}};1112 // Matrix multiplication13 for (int i = 0; i < rows1; i++) {14 for (int j = 0; j < cols2; j++) {15 for (int k = 0; k < cols1; k++) {16 result[i][j] += matrix1[i][k] * matrix2[k][j];17 }18 }19 }2021 cout << "Result matrix:" << endl;22 for (int i = 0; i < rows1; i++) {23 for (int j = 0; j < cols2; j++) {24 cout << result[i][j] << " ";25 }26 cout << endl;27 }2829 return 0;30}
Output
Result matrix: 58 64 139 154
What's going on
The program multiplies two matrices and displays the result. For example:
1 2 3
4 5 6
7 8
9 10
11 12
58 64
139 154
Matrix multiplication is not commutative (A×B ≠ B×A in general).
Header File Used
This header provides:
1#include <iostream>
Understanding Matrix Multiplication Rules
Dimension Requirement
:
For matrices A (m×n) and B (p×q) to be multipliable:
Result Dimensions
:
Multiplication Process
:
Declaring Variables
The program declares:
int rows1 = 2, cols1 = 3;
int rows2 = 3, cols2 = 2;
int matrix1[2][3] = {{1, 2, 3}, {4, 5, 6}};
int matrix2[3][2] = {{7, 8}, {9, 10}, {11, 12}};
int result[2][2] = {{0, 0}, {0, 0}};
The Matrix Multiplication Algorithm
The core algorithm uses three nested loops:
for (int i = 0; i < rows1; i++) {
for (int j = 0; j < cols2; j++) {
for (int k = 0; k < cols1; k++) {
result[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
How it works
:
Step-by-step calculation
(for result[0][0]):
k = 0:
result[0][0] += matrix1[0][0] * matrix2[0][0] = 1 * 7 = 7
k = 1:
result[0][0] += matrix1[0][1] * matrix2[1][0] = 2 * 9 = 18
k = 2:
result[0][0] += matrix1[0][2] * matrix2[2][0] = 3 * 11 = 33
Final:
result[0][0] = 7 + 18 + 33 = 58
Visual Representation
:
result[0][0] = (1*7) + (2*9) + (3*11) = 7 + 18 + 33 = 58
result[0][1] = (1*8) + (2*10) + (3*12) = 8 + 20 + 36 = 64
result[1][0] = (4*7) + (5*9) + (6*11) = 28 + 45 + 66 = 139
result[1][1] = (4*8) + (5*10) + (6*12) = 32 + 50 + 72 = 154
Understanding the Dot Product
Dot Product Concept
:
Each element in the result is the dot product of:
Example
(result[0][0]):
Displaying the Result
The program displays the result matrix:
for (int i = 0; i < rows1; i++) {
for (int j = 0; j < cols2; j++) {
}
cout << endl;
}
Output:
58 64
139 154
1cout << result[i][j] << " ";
Important Matrix Multiplication Properties
Not Commutative
:
Associative
:
Distributive
:
Identity Matrix
:
When to Use Matrix Multiplication
Linear Algebra
:
Computer Graphics
:
Machine Learning
:
Scientific Computing
:
Important Considerations
Dimension Compatibility
:
Initialization
:
Time Complexity
:
Memory Requirements
:
Common Mistakes
Wrong Loop Order
:
Not Initializing Result
:
Dimension Mismatch
:
return 0;
This ends the program successfully.