Theoretical Paper
- Computer Organization
- Data Structure
- Digital Electronics
- Object Oriented Programming
- Discrete Mathematics
- Graph Theory
- Operating Systems
- Software Engineering
- Computer Graphics
- Database Management System
- Operation Research
- Computer Networking
- Image Processing
- Internet Technologies
- Micro Processor
- E-Commerce & ERP
- Dart Programming
- Flutter Tutorial
- Numerical Methods Tutorials
Practical Paper
Industrial Training
2 Dimensional matrix multiplication
Let we have two 2 x 2 matrices A and B
Let we have two 2 x 2 matrices A and B
A=[a00a10a01a11] and B=[b00b10b01b11]
The multiplication of A and B works as follows
- Multiply a00 with b00 and a01 with b10 and sum them together. So the first element r00 becomes a00 . b00 + a01 . b10
- Multiply a00 with b01 and a01 with b11 and sum them together. So the first element r01 becomes a00 . b01 + a01 . b11
- Multiply a10 with b00 and a11 with b10 and sum them together. So the first element r10 becomes a10 . b00 + a11 . b10
- Multiply a10 with b01 and a11 with b11 and sum them together. So the first element r11 becomes a10 . b01 + a11 . b11
So the resulting matrix R becomes,
R=[a00.b00+a01.b10a10.b00+a11.b10a00.b01+a01.b11a10.b01+a11.b11]
Note: In order to multiply two matrices, A and B, the number of columns in A must equal the number of rows in B. Thus, if A is an m∗n matrix and B is an r∗s matrix, n=r.
Source Code:
#include< stdio.h>
int main()
{
int r1, c1, r2, c2, matrix1[10][10], matrix2[10][10], result[10][10];
int i, j, k;
printf("Enter the row and column of the first matrix: ");
scanf("%d%d",&r1,&c1);
printf("Enter the row and column of the second matrix: ");
scanf("%d%d",&r2,&c2);
if(c1 != r2){
printf("Matrix multiplication impossible");
}
printf("Enter the first matrix: \n");
for(i = 0; i < r1; i++)
for(j = 0; j < c1; j++)
scanf("%d", &matrix1[i][j]);
printf("Enter the second matrix: \n");
for(i = 0; i < r2; i++)
for(j = 0; j < c2; j++)
scanf("%d", &matrix2[i][j]);
for(i = 0; i < r1; i++ ){
for(j = 0; j < c2; j++){
result[i][j] = 0;
for(k = 0; k < c1; k++){
result[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
printf("The multiplication of the matrix is: \n");
for(i = 0; i < r1; i++){
for(j = 0; j < c2; j++){
printf("%d", result[i][j]);
printf(" ");
}
printf("\n");
}
return 0;
}
