Transpose of a Matrix in C
Last Updated :
31 Jul, 2023
In this article, we will learn how to write a C program to find the transpose of a matrix. The transpose of a matrix is a new matrix formed by interchanging its rows with columns. In simple words, the transpose of A[][] is obtained by changing A[i][j] to A[j][i].
Note: The transpose of an m × n matrix will result in an n × m matrix.
Example
Algorithm to Find the Transpose of a Matrix
The idea is to run a nested loop and copy the elements of the original matrix A to the resultant matrix B, but with the row and column, indices swapped.
B[i][j] = A[j][i]
C Program to Find the Transpose of a Square Matrix
The below program finds the transpose of A[][] and stores the result in B[][], we can change N for different dimensions.
C
#include <stdio.h>
#define N 4
void transpose( int A[][N], int B[][N])
{
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
B[i][j] = A[j][i];
}
int main()
{
int A[N][N] = { { 1, 1, 1, 1 },
{ 2, 2, 2, 2 },
{ 3, 3, 3, 3 },
{ 4, 4, 4, 4 } };
int B[N][N], i, j;
transpose(A, B);
printf ( "Result matrix is \n" );
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
printf ( "%d " , B[i][j]);
printf ( "\n" );
}
return 0;
}
|
Output
Result matrix is
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
Complexity Analysis
- Time Complexity: O(n2)
- Auxiliary Space: O(n 2)
C Program to find Transpose of a Rectangular Matrix
The below program finds the transpose of A[][] and stores the result in B[][].
C
#include <stdio.h>
#define M 3
#define N 4
void transpose( int A[][N], int B[][M])
{
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
B[i][j] = A[j][i];
}
int main()
{
int A[M][N] = { { 1, 1, 1, 1 },
{ 2, 2, 2, 2 },
{ 3, 3, 3, 3 } };
int B[N][M], i, j;
transpose(A, B);
printf ( "Result matrix is \n" );
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++)
printf ( "%d " , B[i][j]);
printf ( "\n" );
}
return 0;
}
|
Output
Result matrix is
1 2 3
1 2 3
1 2 3
1 2 3
Complexity Analysis
- Time Complexity: O(n*m)
- Auxiliary Space: O(n*m)
Please refer complete article on Program to find the transpose of a matrix for more details!
Share your thoughts in the comments
Please Login to comment...