# Transpose of a matrix in c++

Welcome again dear readers! In this post, we will learn to build a c++ program to take the transpose of a matrix. It will help us practice our array’s conceptual understanding. It’s because a matrix in c++ is actually a two-dimensional array of elements. The program takes the order of the matrix as input. A 2d array will be created with the order of rows*cols. The user will be asked to enter the values of all the array elements. The program will print the entered matrix and its resultant transpose matrix after calculation. Now let’s start learning the program.

## What is the transpose of a matrix?

A matrix is basically a rectangular array of elements. It is arranged in the form of rows and columns which is called its order. To calculate transpose, we change all the rows of the matrix into columns or all the columns into rows. After taking transpose the order of the matrix is reversed i.e. if we take the transpose of a 2×3 matrix then the order of its transpose will be 3×2 as shown in the below figure.

## How to calculate the transpose of a matrix?

•  Declare two variables “rows” and “cols” of integer type and input the order of the matrix from the user.
```    int rows;
int cols;
cout << "Enter rows of matrix:";
cin >> rows;
cout << "enter columns of matrix:";
cin >> cols;
```
• Declare a 2d array “matrix” with the same order entered by the user. i.e. matrix[rows][cols].
•  Declare another 2d array to store transpose after calculation with the order of 5×5 .i.e. transpose[5][5].
•   Take input of all the 2d array elements from the user using nested for loop.
```int matrix[rows][cols];
int transpose[5][5];
// input matrix elements
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cout << "Enter the element " << i << " " << j << ":\t";
cin >> matrix[i][j];
}

}```
• Display the entered matrix to the user using the cout statement and nested for loop.
```//display matrix elements
cout << "\nThe Entered matrix is" << endl;
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {

cout << matrix[i][j] << " ";
}
cout << endl;
}```

Now calculate the transpose of the matrix by changing the rows into columns. Store rows of “matrix 2d array” as columns in the “transpose 2d array”.  i.e. transpose[j][i] = matrix[i][j] where index “i” indicates row number and “j” indicates column number.

```//calculating transpose
for (int i = 0; i < rows; ++i) {

for (int j = 0; j < cols; ++j) {
transpose[j][i] = matrix[i][j];
}
}```
• Display the calculated transpose to the user. As we already mentioned, the order of the matrix is reversed after taking transpose. So, to print the resultant transpose matrix, the outer for loop of the nested loop will iterate until “i<cols”, and the inner for loop will iterate until “j<rows”.
```//Printing the tranpose
cout << "\nTranspose of the entered matrix" << endl;
for (int i = 0; i < cols; ++i) {
for (int j = 0; j < rows; ++j) {
cout << transpose[i][j] << " ";
}
cout << endl;
}```

## Complete code for calculating matrix transpose

Now check the complete code of the transpose program shared below for better comprehension.

```#include<iostream>
using namespace std;

int main() {

int rows;
int cols;
//input the order of the matrix
cout << "Enter rows of matrix:";
cin >> rows;
cout << "enter columns of matrix:";
cin >> cols;
int matrix[rows][cols];
int transpose[5][5];
// input matrix elements
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << "Enter the element " << i << " " << j << ":\t";
cin >> matrix[i][j];
}

}
//display matrix elements
cout << "\nThe Entered matrix is" << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {

cout << matrix[i][j] << " ";
}
cout << endl;
}

//calculating transpose
for (int i = 0; i < rows; i++) {

for (int j = 0; j < cols; j++) {
transpose[j][i] = matrix[i][j];
}
}
//Printing the tranpose
cout << "\nTranspose of the entered matrix" << endl;
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
cout << transpose[i][j] << " ";
}
cout << endl;
}
return 0;

```

This program can only take the transpose of matrices with the maximum order of 5×5. You can increase it if you want but I think it’s sufficient for this example. Now check the output of the program below.

Now let’s end the tutorial here. I hope you liked and understood this step by step explanation of transpose program in C++. Thanks for reading and supporting.

Scroll to Top