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. removed_email_address@domain.invalid

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. removed_email_address@domain.invalid

`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]

] ]