Matrix transposition is a fundamental operation in linear algebra and computer science. It involves swapping rows with columns in a matrix, resulting in a new matrix with reversed dimensions. In this article, we’ll explore how to implement a Ruby function to transpose a given matrix. Matrix transposition is a fundamental operation in various fields of mathematics and computer science. I

**Understanding Matrix Transposition**

Matrix transposition takes an m × n matrix and turns it into an n × m matrix, where the rows of the original matrix become the columns of the transposed matrix, and vice versa. This operation is often used in various applications, including data manipulation and image processing.

**The Ruby Function**

Let’s begin by defining a Ruby function called `transpose_matrix`

to perform matrix transposition:

```
def transpose_matrix(matrix)
rows, cols = matrix.length, matrix[0].length
transposed = Array.new(cols) { Array.new(rows) }
rows.times do |i|
cols.times do |j|
transposed[j][i] = matrix[i][j]
end
end
return transposed
end
```

**Example Usage**

Now, let’s explore some examples to see how our `transpose_matrix`

function works:

```
matrix_1 = [
[1, 2, 3],
[4, 5, 6]
]
result_1 = transpose_matrix(matrix_1)
puts "Original Matrix:"
matrix_1.each { |row| puts row.inspect }
puts "Transposed Matrix:"
result_1.each { |row| puts row.inspect }
```

**Output:**

```
Original Matrix:
[1, 2, 3]
[4, 5, 6]
Transposed Matrix:
[1, 4]
[2, 5]
[3, 6]
```

In this example, we successfully transposed the 2×3 matrix, swapping rows with columns.

**Another Example:**

```
matrix_2 = [
[1, 2],
[3, 4],
[5, 6]
]
result_2 = transpose_matrix(matrix_2)
puts "Original Matrix:"
matrix_2.each { |row| puts row.inspect }
puts "Transposed Matrix:"
result_2.each { |row| puts row.inspect }
```

**Output:**

```
Original Matrix:
[1, 2]
[3, 4]
[5, 6]
Transposed Matrix:
[1, 3, 5]
[2, 4, 6]
```

Here, we’ve successfully transposed a 3×2 matrix.