Can any one tell me converting single to multi dimension array
conversion
For example ,
a = [ 1,2,3,4,5,6,7,8,9,10 ]
a.( 2,3 )
Output,
here ,
2 means dimension No
3 means elements in each dimension
Can any one tell me converting single to multi dimension array
conversion
For example ,
a = [ 1,2,3,4,5,6,7,8,9,10 ]
a.( 2,3 )
Output,
here ,
2 means dimension No
3 means elements in each dimension
Ashikali A. wrote:
Can any one tell me converting single to multi dimension array
conversionFor example ,
a = [ 1,2,3,4,5,6,7,8,9,10 ]
a.( 2,3 )Output,
here ,
2 means dimension No
3 means elements in each dimension
In above example output should be ,
a = [ [1,2,3],[4,5,6],[7,8,9] , [ 10 ] ]
2009/4/13 Ashikali A. [email protected]
here ,
2 means dimension No
3 means elements in each dimensionIn above example output should be ,
a = [ [1,2,3],[4,5,6],[7,8,9] , [ 10 ] ]
That has more than three elements along the outermost direction. It
represents the matrix:
1 2 3
4 5 6
7 8 9
10
So you can’t fit the data into a 3x3 space. You might need to specify
the
problem a bit more carefully.
2009/4/13 James C. [email protected]
Output,
That has more than three elements along the outermost direction. It
represents the matrix:1 2 3
4 5 6
7 8 9
10
Although, here’s one possible and slightly more general solution:
class Array
def multidim(*sizes)
split = sizes.inject { |a,b| a * b }
return self unless split
result = []
each_slice(split) { |slice| result << slice.multidim(*sizes[1…-1])
}
result
end
end
With this, you specify how many you want in each dimension, so:
[1,2,3,4,5,6,7,8,9,10].multidim(3)
#=> [[1,2,3],[4,5,6],[7,8,9],[10]]
It works from the outside in, so for higher dimensions it works like
this:
[1,2,3,4,5,6,7,8,9,10].multidim(3,2)
#=> [ [ [1, 2],
[3, 4],
[5, 6]
],
[ [7, 8],
[9, 10]
] ]
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs