If the length of the subarrays does not match, an IndexError is raised.
irb(main):002:0> arr=[[1,2,3],[4,5],[6]] => [[1, 2, 3], [4, 5], [6]] irb(main):003:0> arr.transpose IndexError: element size differs (2 should be 3) from (irb):3:in `transpose' from (irb):3 from /Users/liuxingqi/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `<main>'
it should be:
irb(main):004:0> arr=[[1,2,3],[4,5,6]] => [[1, 2, 3], [4, 5, 6]] irb(main):005:0> arr.transpose => [[1, 4], [2, 5], [3, 6]]
or
irb(main):006:0> arr=[[1,2],[3,4],[5,6]] => [[1, 2], [3, 4], [5, 6]] irb(main):007:0> arr.transpose => [[1, 3, 5], [2, 4, 6]]