In linear algebra, the transpose of a matrix A is another matrix AT (also written A′, Atr,tA or At) created by any one of the following equivalent actions:

• reflect A over its main diagonal (which runs from top-left to bottom-right) to obtain AT
• write the rows of A as the columns of AT
• write the columns of A as the rows of AT

Formally, the i th row, j th column element of AT is the j th row, i th column element of A: If A is an m × n matrix then AT is an n × m matrix.

Code

        public static int[,] Transpose(int[,] matrix)
{
int row = matrix.GetLength(0);
int column = matrix.GetLength(1);
Console.WriteLine("Input Matrix");
PrintMatrix(matrix);

int[,] transpose = new int[column, row];

for (int rowCounter = 0; rowCounter < row; rowCounter++)
{
for (int columnCounter = 0; columnCounter < column; columnCounter++)
{
transpose[columnCounter, rowCounter] =                                              matrix[rowCounter, columnCounter];
}
}

Console.WriteLine("Transpose");
PrintMatrix(transpose);
return transpose;
}