Матрицы часто встречаются в науке!
Представьте, что вы пытаетесь записать значения температуры, объема и давления в эксперименте с течением времени. На самом деле у вас, вероятно, будет термометр, который регистрирует температуру, барометр для измерения давления и трубка для измерения объема. Если бы вы взяли по 3 наблюдения от каждого индикатора, скажем, время = 0, время = 30 секунд и время = 60 секунд.
Теперь у вас есть 3 одномерных массива, каждый из которых представляет температуру, давление и объем соответственно. Если вы наложите каждый массив друг на друга, то это можно рассматривать как матрицу 3x3!
где каждая строка — это показатель (в некоторых единицах), а каждый столбец — это наблюдение в это фиксированное время.
Однако что, если мы хотим просмотреть/сохранить эту матрицу по-другому?
Что, если мы хотим изменить это так, чтобы каждая строка представляла время, а каждый столбец представлял индикатор.
Нам нужно транспонировать эту матрицу 3x3!
То есть температура в первом столбце, давление во втором и объем в третьем столбце, где каждая строка представляет время. Поэтому, когда мы читаем матрицу слева направо, мы видим все наблюдения в одно и то же фиксированное время.
Это функция транспонирования, и мы можем имитировать это преобразование, используя код C++!
//Daniel Sepeda (9/20/29) //Transposing a 3x3 matrix in C++ from userinput #include <iostream> #include<conio.h> #include <stdio.h> // include this for the clear int main() { //Create two 3x3 Matrices one for input and another for the transpose int arr[3][3], i, j, arrt[3][3]; using std::cout; using std::endl; cout << "Enter a 3x3 Matrix : "; //Outter for loop for rows and inner loop for columns for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { std::cin>>arr[i][j]; } } cout<<"Transposing Array...\n"; //Transposing the rows/columns in from input Matrix into columns/rows in new transpose matrix for(i=0;i<3;i++) { for(j=0;j<3;j++) { arrt[i][j] = arr[j][i]; //notice we set i == j and j ==i } } cout << "Transpose of the Matrix is :\n"; //outputting the transposed matrix for(i=0;i<3;i++) { cout << "["; for(j=0;j<3;j++) { cout<<arrt[i][j]; cout << " "; } cout << "]"; cout<<"\n"; } _getch(); }
Спасибо! удачного кодирования :)