# Transpose Matrix

This algorithm finds the transpose of a given matrix. The transpose of a given matrix is formed by interchanging the rows and columns of a matrix.

```									```Public Structure Matrix
Public _Matrix As Integer(,)
Public Rows As Integer
Public Columns As Integer

Public Sub New(matrix As Integer(,), rows As Integer, columns As Integer)
Me._Matrix = matrix
Me.Rows = rows
Me.Columns = columns
End Sub
End Structure

Public Shared Function TransposeMatrix(matrix As Matrix) As Matrix
Dim transpose As Integer(,) = New Integer(matrix.Columns - 1, matrix.Rows - 1) {}

For i As Integer = 0 To matrix.Rows - 1
For j As Integer = 0 To matrix.Columns - 1
transpose(j, i) = matrix._Matrix(i, j)
Next
Next

Return New Matrix(transpose, matrix.Columns, matrix.Rows)
End Function```
```

### Example

```									```Dim m1 As Integer(,) = New Integer(1, 2) {}
m1(0, 0) = 1
m1(0, 1) = 2
m1(0, 2) = 3
m1(1, 0) = 4
m1(1, 1) = 5
m1(1, 2) = 6

Dim matrix As New Matrix(m1, 2, 3)
Dim transpose As Matrix = TransposeMatrix(matrix)```
```

### Output

```									```(0, 0) = 1
(0, 1) = 4
(1, 0) = 2
(1, 1) = 5
(2, 0) = 3
(2, 1) = 6```
```