Skip to content
Related Articles

Related Articles

C Program to find transpose of a matrix

View Discussion
Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 16 Jun, 2022
View Discussion
Improve Article
Save Article

Transpose of a matrix is obtained by changing rows to columns and columns to rows. In other words, transpose of A[][] is obtained by changing A[i][j] to A[j][i].

matrix-transpose

For Square Matrix : 

The below program finds transpose of A[][] and stores the result in B[][], we can change N for different dimension.

C




// C Program to find
// transpose of a matrix
#include <stdio.h>
#define N 4
 
// This function stores transpose of A[][] in B[][]
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 

Time Complexity : O(n 2 )

Auxiliary Space : O(n 2 )

For Rectangular Matrix : 

The below program finds transpose of A[][] and stores the result in B[][].

c




#include <stdio.h>
#define M 3
#define N 4
 
// This function stores transpose of A[][] in B[][]
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}};
 
    // Note dimensions of B[][]
    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 

Time Complexity : O(n*m)

Auxiliary Space : O(n*m)

Please refer complete article on Program to find transpose of a matrix for more details!


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!