Find the transpose of a matrix in place of 3×3 matrix in C++
In this C++ program, we are going to find the transpose of a given matrix in place with simple array commands and nested loop. This problem is based on the application of array which has many applications. Following is a short and easy solution to perform this task and complete source code is also available.
How to find the transpose of a given matrix in C++
Problem statement
There is a matrix of size 3×3 ( 2D array). Find the transpose of that matrix.
Definition
The transpose of a matrix is defined as a matrix formed my interchanging all rows with their corresponding column and vice versa of previous matrix.
Consider the following example-
Problem approach
- Initialize a 2D array to work as matrix.
- Store values in it.
- Find transpose by using logic.
- Print output on screen.
Program/Source code
Following is the program code to find trace and normal of a matrix. It is written and successfully compiled in CodeBlocks v 16.01 in windows 10.
/* C++ program to transpose of a given matrix** ** enter matrix values of your choice** ***enter different values for different results*** note: No other matrix is declared and same matrix is transposed Enter the array(matrix) values within array limit only.... */ #include <iostream> using namespace std; int main() { int matrix[3][3]={{43,23,55},{65,76,32},{33,51,22}}; //array declaration and values // change array values here int temp; cout<<"Given matrix is-"<<endl; for(int i=0;i<3;i++){ // print given matrix for(int j=0;j<3;j++) cout<<matrix[i][j]<<"\t"; cout<<endl; } cout<<endl; for(int i=0;i<3;i++){ // transpose for(int j=i;j<3;j++){ //NESTED loop temp=matrix[i][j]; //swap variables matrix[i][j]=matrix[j][i]; matrix[j][i]=temp; } } cout<<"Transpose of given matrix is-"<<endl; for(int i=0;i<3;i++){ //print transpose of matrix for(int j=0;j<3;j++) cout<<matrix[i][j]<<"\t"; cout<<endl; } return 0; }
Output
Given matrix is- 43 23 55 65 76 32 33 51 22 Transpose of given matrix is- 43 65 33 23 76 51 55 32 22 Process returned 0 (0x0) execution time : 4.607 s Press any key to continue.
Program explanation
- Initialize an integer array (2D) variable “marix“.
- Store value in it.
- Print the initial values using nested for loop.
- Transpose of that matrix in calculated by using following logic
for(int i=0;i<3;i++){ // transpose for(int j=i;j<3;j++){ //NESTED loop temp=matrix[i][j]; //swap variables matrix[i][j]=matrix[j][i]; matrix[j][i]=temp; } }
All the corresponding rows and columns are interchanged using nested for loop.
- Print the matrix using the same logic as in point no.3
Also, read
Leave a Reply