Home »
Ruby Tutorial
Ruby Array.transpose Method
By IncludeHelp Last updated : December 01, 2024
In this article, we will study about Array.transpose Method. You all must be thinking the method must be doing something related to transposing something. It is not as simple as it looks. Well, we will figure this out in the rest of our content. We will try to understand it with the help of syntax and demonstrating program codes.
Description and Usage
This method is a public instance method and defined for the Array class in Ruby’s library. This method works in a way that it transposes the objects present in the Array instance. Transposing simply means that the row becomes column and the column becomes a row. For transposing the Array instance, you must remember that all the sub-arrays present in the Array instance should be of the same length. If the size of sub-arrays doesn’t match then the method will provide you an Index Error.
Syntax
array_instance.transpose -> new_array
Parameters
This method does not take any argument.
Example 1
=begin
Ruby program to demonstrate transpose method
=end
# array declaration
table = [[2,4,8],[10,12,134],[160,180,200]]
puts "Array transpose implementation"
rslt = table.transpose
puts "The Array instance returned from the method is:#{rslt}"
Output
Array transpose implementation
The Array instance returned from the method is:[[2, 10, 160], [4, 12, 180], [8, 134, 200]]
Explanation
In the above code, you can observe that we are transposing elements in the Array instance with the help of the Array.transpose method. In the output, you can see that the row has changed to the column and the column has changed to row.
Example 2
=begin
Ruby program to demonstrate transpose method
=end
# array declaration
table = [[2,4,8],[10,12,134],[160,180,200,344]]
puts "Array transpose implementation"
rslt = table.transpose
puts "The Array instance returned from the method is:#{rslt}"
Output
Array transpose implementation
element size differs (4 should be 3)
(repl):9:in `transpose'
(repl):9:in `<main>'
Explanation
In the above code, you can observe that the method is giving an IndexError because the sub-arrays in the self Array instance are not of the same size or length. Ideally, transposing such Array instances is not possible.