Here is the C program for subtraction of two matrix. A matrix is a two-dimentional array of elements. The size of a matrix is defined as the number of rows and columns of that matrix.
The horizontal and vertical lines of elements in a matrix are called rows and columns of a matrix. The element in the i-th row and j-th column of a matrix A is referred as (i,j), or A[i,j].
Subtracting two same-size matrices is very similar to adding matrices with the only difference being subtracting corresponding entries.
- Matrix subtraction is defined for two matrices of the same dimensions, If the size of matrices are not same , then the difference of these two matrices is said to be undefined.
- The subtraction of two M × N matrices A and B, denoted by A - B, is again an M × N matrix computed by subtracting corresponding elements.
Algorithm to subtract of two matrices
Let A and B are two matrices of dimension M X N and D is the difference matrix(D = A - B). Below mentioned steps explains how we can find difference of two matrices.
Let A and B are two matrices of dimension M X N and D is the difference matrix(D = A - B). Below mentioned steps explains how we can find difference of two matrices.
- To subtract two matrices we have to subtract their corresponding elements. For example, D[i][j] = A[i][j] - B[i][j].
- Traverse both matrices row wise(first all elements of a row, then jump to next row) using two loops(check line number 29 and 30 of below program).
- For every element A[i][j], subtract it with corresponding element B[i][j] and store the result in Difference matrix at D[i][j].
C Program for subtraction two matrix
#include <stdio.h>
int main(){
int rows, cols, rowCounter, colCounter;
int firstMatrix[50][50], secondMatrix[50][50], differenceMatrix[50][50];
printf("Enter Rows and Columns of Matrix\n");
scanf("%d %d", &rows, &cols);
printf("Enter first Matrix of size %dX%d\n", rows, cols);
/* Input first matrix*/
for(rowCounter = 0; rowCounter < rows; rowCounter++){
for(colCounter = 0; colCounter < cols; colCounter++){
scanf("%d", &firstMatrix[rowCounter][colCounter]);
}
}
/* Input second matrix*/
printf("Enter second Matrix of size %dX%d\n", rows, cols);
for(rowCounter = 0; rowCounter < rows; rowCounter++){
for(colCounter = 0; colCounter < cols; colCounter++){
scanf("%d", &secondMatrix[rowCounter][colCounter]);
}
}
/* Subtract corresponding elements of both matrices
differenceMatrix[i][j] = firstmatrix[i][j] + secondMatrix[i][j] */
for(rowCounter = 0; rowCounter < rows; rowCounter++){
for(colCounter = 0; colCounter < cols; colCounter++){
differenceMatrix[rowCounter][colCounter] = firstMatrix[rowCounter][colCounter]
- secondMatrix[rowCounter][colCounter];
}
}
/* Print difference matrix*/
printf("Difference Matrix\n");
for(rowCounter = 0; rowCounter < rows; rowCounter++){
for(colCounter = 0; colCounter < cols; colCounter++){
printf("%d ", differenceMatrix[rowCounter][colCounter]);
}
printf("\n");
}
return 0;
}
Output
Enter Rows and Columns of Matrix 2 2 Enter first Matrix of size 2X2 0 2 1 3 Enter second Matrix of size 2X2 3 2 1 0 Difference Matrix -3 0 0 3
Enter Rows and Columns of Matrix 3 2 Enter first Matrix of size 3X2 2 1 0 1 7 2 Enter second Matrix of size 3X2 0 0 -2 1 2 -3 Difference Matrix 2 1 2 0 5 5
Related Topics