# How to find transpose of a matrix in C++

In this tutorial, we will learn how to find the transpose of a matrix in C++ and will understand the logic behind the program.

Transpose of a matrix is a manipulation of a matrix such that each row becomes column and each column becomes a row of that matrix. In other words, Transpose of a matrix M[][] is when M[i][j] becomes M[j][i].

We can transpose a matrix if and only if the matrix is a square matrix, i.e., if the matrix has the same rows and columns size/length.

Example:

Consider a matrix of 4x4 Input matrix: 1 4 5 6 2 3 5 4 4 6 8 7 1 4 8 0 Transpose of this matrix will be: 1 2 4 1 4 3 6 4 5 5 8 8 6 4 7 0

## Algorithm

- Declare two matrices say ‘
**A**‘ and ‘**B’**of size m*n and initialize the first matrix ‘A’. (where n and m are the lengths of row and column respectively) - check whether ‘
**n**‘ is equal to ‘**m**‘. Then proceed for next steps. - Print the Matrix befor transpose.
- start a loop form i = 0 to ‘n’

a. start another loop form j = 0 to ‘n’

i) perform transpose of matrix by**B[i][j] = A[j][i]**.

ii) increse ‘j’ by one.

b. increse ‘i’ by one. - print the elements second matrix ‘B’.

The implementation of the algorithm in C++ as follows:

## transpose of a matrix in C++

#include <cstdlib> #include <iostream> #define size 100 using namespace std; //Funtion to diaplay elements of a matrix void display(int Matrix[size][size], int n, int m){ for(int i = 0;i < n; i++){ for(int j = 0;j < m;j++){ cout<<Matrix[i][j]<<" "; } cout<<endl; } } int main(int argc, char** argv) { int A[size][size],B[size][size], n, m; cout<<"Enter the length of rows: "; cin>>n; cout<<"Enter length of column: "; cin>>m; //checking for equality of m and n if(n != m){ cout<<"Length of rows and columns must be equal."; exit(0); } //Taking input in matrix cout<<"\nEnter the elements of matrix: \n"; for(int i = 0;i < n; i++){ for(int j = 0;j < m;j++){ cin>>A[i][j]; } } cout<<"\nMatrix, before transpose: \n"<<endl; display(A, n, m); //Transpose of matrix for(int i = 0;i < n; i++){ for(int j = 0;j < m;j++){ B[i][j] = A[j][i]; } } cout<<"\nMatrix after transpose: \n"<<endl; display(B, n, m); return 0; }

**Time complexity: O(n^2)**

**you may also learn: **

## Leave a Reply