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.