Is there a fast way to return a subsection of an array object as there
is the minor function for a Matrix?
For example
testArray = [[1,2,3,4,5],
[7,8,9,10,11]]
How can the elements [[4,5],[10,11]] be extracted?
Thanks,
Is there a fast way to return a subsection of an array object as there
is the minor function for a Matrix?
For example
testArray = [[1,2,3,4,5],
[7,8,9,10,11]]
How can the elements [[4,5],[10,11]] be extracted?
Thanks,
On 2/13/07, WKC CCC [email protected] wrote:
testArray.map {|x| x[-2…-1]}
I don’t know if it is “fast”, but it was certainly quick to write
Blessings,
TwP
Is there a fast way to return a subsection of an array object as there
is the minor function for a Matrix?For example
testArray = [[1,2,3,4,5],
[7,8,9,10,11]]How can the elements [[4,5],[10,11]] be extracted?
Use the built-in matrix class:
require ‘matrix’
m = Matrix.rows (1…5).to_a, (7…11).to_a
m.minor(0…1, 3…4) #=> Matrix[[4, 5], [10, 11]]
See the matrix documentation for additional documentation:
Thanks,
I’ve created the following function as an extention to class Array:
def Section(startRow,nRows,startCol,nCols)
part = self[startRow…startRow+nRows-1]
part = part.map{|x| x[startCol…startCol + nCols-1]}
return part
end
testArray=[[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14],
[15,16,17,18]]
calling testArray.Section(2,2,2,2)
will return [[13,14],[17,18]]
which is essentially what the minor function but on an Array
On 2/13/07, WKC CCC [email protected] wrote:
testArray=[[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14],
[15,16,17,18]]calling testArray.Section(2,2,2,2)
will return [[13,14],[17,18]]
def section( rows, cols )
self.slice(rows).map! {|c| c.slice(cols)}
end
testArray = [
[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[16,17,18,19,20]
]
testArray.section( 2…4, 2…4 )
[[13, 14],
[18, 19]]
Blessings,
TwP
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