Tutorial Playlist
132 Lessons1. Introduction to C Tutorial
2. Addition of Two Numbers in C
3. Anagram Program in C
4. Armstrong Number in C
5. Array in C
6. Array of Pointers in C
7. Array of Structure in C
8. C Program to Find ASCII Value of a Character
9. Assignment Operator in C
10. Binary Search in C
11. Binary to Decimal in C
12. Bitwise Operators in C
13. Boolean in C
14. C Compiler for Mac
15. C Compiler for Windows
16. C Function Call Stack
17. C Language Download
18. Operators in C
19. C/C++ Preprocessors
20. C Program for Bubble Sort
21. C Program for Factorial
22. C Program for Prime Numbers
23. C Program for String Palindrome
24. C Program to Reverse a Number
25. Reverse a String in C
26. C string declaration
27. String Input Output Functions in C
28. Calculator Program in C
29. Call by Value and Call by Reference in C
30. Ceil Function in C
31. Coding Vs. Programming
32. Command Line Arguments in C/C++
33. Comments in C
34. Compilation process in C
35. Conditional Statements in C
36. Conditional operator in the C
37. Constant Pointer in C
38. Constants in C
39. Dangling Pointer in C
40. Data Structures in C
41. Data Types in C
42. Debugging C Program
43. Convert Decimal to Binary in C
44. Define And include in C
45. Difference Between Arguments And Parameters
46. Difference Between Compiler and Interpreter
47. Difference Between If Else and Switch
48. Do While Loop In C
49. Double In C
50. Dynamic Array in C
51. Dynamic Memory Allocation in C
52. Enumeration (or enum) in C
53. Evaluation of Arithmetic Expression
54. Factorial of A Number in C
55. Features of C Language
56. Fibonacci Series Program in C Using Recursion
57. File Handling in C
58. For Loop in C
59. Format Specifiers in C
60. Functions in C
61. Function Pointer in C
62. goto statement in C
63. C Hello World Program
64. Header Files in C
65. Heap Sort in C Program
66. Hello World Program in C
67. History of C Language
68. How to compile a C program in Linux
69. How to Find a Leap Year Using C Programming
70. Identifiers in C
71. If Else Statement in C
72. If Statement in C
73. Implementation of Queue Using Linked List
74. Increment and decrement operators in c
75. Input and Output Functions in C
76. How To Install C Language In Mac
77. Jump Statements in C
78. Lcm of Two Numbers in C
79. Length of an Array in C
80. Library Function in C
81. Linked list in C
82. Logical Operators in C
83. Macros in C
84. Matrix multiplication in C
Now Reading
85. Nested if else statement in C
86. Nested Loop in C
87. One Dimensional Array in C
88. Operator Precedence and Associativity in C
89. Overflow And Underflow in C
90. Palindrome Program in C
91. Pattern Programs in C
92. Pointer to Pointer in C
93. Pointers in C: A Comprehensive Tutorial
94. Pre-increment And Post-increment
95. Prime Number Program in C
96. Program for Linear Search in C
97. Pseudo-Code In C
98. Random Access Files in C
99. Random Number Generator in C
100. Recursion in C
101. Relational Operators in C
102. Simple interest program in C
103. Square Root in C
104. Stack in C
105. Stack Using Linked List in C
106. Static function in C
107. Stdio.h in C
108. Storage Classes in C
109. strcat() in C
110. Strcmp in C
111. Strcpy in C
112. String Comparison in C
113. String Functions in C
114. String Length in C
115. String Pointer in C
116. strlen() in C
117. Structures in C
118. Structure of C Program
119. Switch Case in C
120. C Ternary Operator
121. Tokens in C
122. Toupper Function in C
123. Transpose of a Matrix in C
124. Two Dimensional Array in C
125. Type Casting in C
126. Types of Error in C
127. Unary Operator in C
128. Use of C Language
129. User Defined Functions in C
130. What is Variables in C
131. Is C language case sensitive
132. Fibonacci Series in C
Matrix refers to a 2D array of numbers represented in rows and columns. It supports different operations like addition, subtraction, and multiplication. Let’s dive deep into the details of matrix multiplication in C.
If you want to download this tutorial in PDF format for further reading: Download Tutorial PDF
Matrix is an ordered rectangular array of functions or numbers. A matrix with n vertical lines, known as columns, and m horizontal lines, known as rows, is a matrix of order m by n.
Multiplication of two matrices is possible only when the number of columns in the first matrix equals the number of rows in the second matrix. Hence, the order of the product of the two matrices will be equivalent to the number of rows in the first matrix and the number of columns in the second matrix.
The dot product of the first row of the first matrix and the first column of the second matrix leads to the first element of the product matrix. You can perform matrix multiplication in C using function or without it.
Step-1: Enter the value of m and n, i.e., the order of the first matrix.
Step-2: Enter the value of p and q, i.e., the order of the second matrix.
Step-3: Define a matrix of size a[m][n] and b[p][q].
Step-4: Enter the element of each matrix (row-wise) to calculate matrix multiplication in C using for loop.
Step-5: If the number of columns of the first matrix doesn’t equal the number of rows of the second matrix, then print the below message “matrix multiplication is incompatible” and exit. If not, move to the next step.
Step-6: Define a third matrix c (result matrix) of size m x q to save the multiplication result.
Step-7: Create a for loop from i=0 to i=m.
Step-8: Create an inner loop in the above loop from j=0 to j=q.
Step-9: Initialise the value of the element i & j of the new matrix to 0.
Step-10: Create an inner loop from k=0 to k=p within the above loop.
Step-11: Use add (+) and assign (=) operator to save the value of a[i][k] * b[k][j] in the result matrix c[i][j].
Step-12: Print the output of the result matrix.
Flow Chart of Matrix Multiplication
In C, there are two types of matrices: square matrices and rectangular matrices. Let's begin by exploring how to multiply two square matrices in C.
A square matrix is one in which the number of rows and columns are the same. You can perform matrix multiplication in C of two square matrices only if both the matrices have the same order. The corresponding elements are multiplied and added to the products together.
An easy way to understand this is to develop the code for 2x2 matrix multiplication in C and 3x3 matrix multiplication in C.
Here’s the code for the multiplication of two square matrices:
#include<stdio.h> |
Output:
Enter the value of N (N <= 5): 2 |
In the above code, the first step defines the input, output, and resultant matrix sizes. The user is prompted to enter the elements of matrix-1 and matrix-2. Subsequently, the program runs the for loop to multiply and add the elements of the matrices. The loop runs until ‘n’ (the size of a square matrix).
In a rectangular matrix, the number of rows and the number of columns are unequal. Unlike the square matrix, the rectangular matrix allows matrix multiplication in C with different dimensions. The number of columns in the first matrix must equal the number of rows in the second matrix. Otherwise, you will get an error
Here’s the code for the multiplication of two rectangular matrices:
#include <stdio.h> |
In the above code of rectangular matrix multiplication in C, the first step initialises the rows and columns of the input matrices and the result matrix. The user then inputs the elements of each matrix. The program runs the for loop to multiply and add the elements of each of the input matrices. If the number of columns in the first matrix is not equal to the number of rows in the second matrix, it displays a message that matrix multiplication is not possible.
Output
Enter the number of rows and columns for Matrix 1: 2 3 |
Let’s try running the above program in the case when the number of columns in the first matrix doesn’t equal the number of rows in the second matrix. Here’s the output.
Output:
Enter the order of first matrix |
The code for matrix multiplication in C without function may be long. You can pass a function to simplify the code for matrix multiplication. The method of passing a function involves allowing the user to input the matrix using the input() function. The display() function is used to show the matrix’s result. You can name a function multiply() and use it to calculate the multiplication of two matrices.
Using matrix multiplication in C ensures the C program can access and accomplish operations on the data more efficiently. Understanding its syntax and practising it helps you to apply mathematical logic to coding algorithms.
Tutorials significantly help you to master core concepts, pursuing courses like upGrad’s Executive Post Graduate Programme in Software Development by IIIT-B can help your career skyrocket in the developing field of STEM.
Enroll now to commence your journey!
Q. Is matrix multiplication commutative?
Generally, the matrix multiplication is not commutative. The reason is when we multiply the two matrices, the elements of the first row of matrix-1 are multiplied by the elements of the first column of matrix-2. So, altering the order will alter the corresponding elements of matrix-1 and matrix-2.
Q. When is matrix multiplication in C possible?
The matrix multiplication in C is possible if the number of columns in the first matrix and the number of rows in the second matrix are equal.
Q. Is matrix multiplication the same as cross product or dot product?
Matrix multiplication is not the same as the dot product or cross product. The dot product accepts two vectors as input and outputs a scalar. The cross-product inputs two R3 vectors, and the output is another R3 vector. On the other hand, matrix multiplication accepts a matrix and a vector as input and outputs a vector.
PAVAN VADAPALLI
Director of Engineering
Director of Engineering @ upGrad. Motivated to leverage technology to solve problems. Seasoned leader for startups and fast moving orgs. Working …Read More
Popular
Talk to our experts. We’re available 24/7.
Indian Nationals
1800 210 2020
Foreign Nationals
+918045604032
upGrad does not grant credit; credits are granted, accepted or transferred at the sole discretion of the relevant educational institution offering the diploma or degree. We advise you to enquire further regarding the suitability of this program for your academic, professional requirements and job prospects before enrolling. upGrad does not make any representations regarding the recognition or equivalence of the credits or credentials awarded, unless otherwise expressly stated. Success depends on individual qualifications, experience, and efforts in seeking employment.
upGrad does not grant credit; credits are granted, accepted or transferred at the sole discretion of the relevant educational institution offering the diploma or degree. We advise you to enquire further regarding the suitability of this program for your academic, professional requirements and job prospects before enr...