On Tuesday 16 July 2013 Diego N. wrote
> Hi!
> I'm looking for a way to get part of matix: eg:
> my matrix:
> [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
> [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
> [30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
> [40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
> [50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
> [60, 61, 62, 63, 64, 65, 66, 67, 68, 69]
> [70, 71, 72, 73, 74, 75, 76, 77, 78, 79]
> [80, 81, 82, 83, 84, 85, 86, 87, 88, 89]
> [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
> 
> How could i get part ( square ) of the matrix? If i choose the number
> 54, i would like to get the numbers [43,44,45,53,55,63,64,65], a 3x3
> square.
> 
> I'm trying to understand the doc (
> http://ruby-doc.org/stdlib-1.9.3/libdoc/matrix/rdoc/Matrix.html ).
> 
> There's a method to get this?
> 
> thanks,
> Dieog
> 
> --
> Posted via http://www.ruby-forum.com/.

I think the method you want is Matrix#minor. If I understand correctly, you 
want a 3x3 matrix "centered" on the element 54, corresponding to row 4 and 
column 4. You can do:

matrix.minor(3..5,3..5)

or

matrix.minor(3,3,3,3)

In the first case, you pass the range of rows and columns to return as two 
Range objects; in the second case, you give the first row and the number of 
rows, the starting column and the number of columns.

I hope this helps

Stefano