Матрицы часто встречаются в науке!

Представьте, что вы пытаетесь записать значения температуры, объема и давления в эксперименте с течением времени. На самом деле у вас, вероятно, будет термометр, который регистрирует температуру, барометр для измерения давления и трубка для измерения объема. Если бы вы взяли по 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();
}

Спасибо! удачного кодирования :)