如何访问嵌套元素,传递带坐标的数组
How to access a nested element, passing array with coordinates
是否有任何快捷方式来访问嵌套数组的元素,传递带有坐标的数组?我的意思是:
matrix = [[1,2,3,4],[5,6,7,8]]
array = [1,1]
matrix [array]
# => 6
我只是想知道是否有比以下更短的版本:
matrix [array[0]][array[1]]
matrix[1][1]
应等于 6。matrix[1] 是第二个数组,matrix[1][1] 是该数组中的第二个元素。
我相信你想使用 Matrix class:
require 'matrix'
arr = [[1,2,3,4],[5,6,7,8]]
matrix = Matrix[*arr] #=> Matrix[[1, 2, 3, 4], [5, 6, 7, 8]]
matrix[1,1] #=> 6
matrix.row(1) #=> Vector[5, 6, 7, 8]
c = matrix.column(1) #=> Vector[2, 6]
c.to_a #=> [2, 6]
m = matrix.transpose #=> Matrix[[1, 5], [2, 6], [3, 7], [4, 8]]
m.to_a #=> [[1, 5], [2, 6], [3, 7], [4, 8]]
array.inject(matrix, :fetch)
# => 6
是否有任何快捷方式来访问嵌套数组的元素,传递带有坐标的数组?我的意思是:
matrix = [[1,2,3,4],[5,6,7,8]]
array = [1,1]
matrix [array]
# => 6
我只是想知道是否有比以下更短的版本:
matrix [array[0]][array[1]]
matrix[1][1]
应等于 6。matrix[1] 是第二个数组,matrix[1][1] 是该数组中的第二个元素。
我相信你想使用 Matrix class:
require 'matrix'
arr = [[1,2,3,4],[5,6,7,8]]
matrix = Matrix[*arr] #=> Matrix[[1, 2, 3, 4], [5, 6, 7, 8]]
matrix[1,1] #=> 6
matrix.row(1) #=> Vector[5, 6, 7, 8]
c = matrix.column(1) #=> Vector[2, 6]
c.to_a #=> [2, 6]
m = matrix.transpose #=> Matrix[[1, 5], [2, 6], [3, 7], [4, 8]]
m.to_a #=> [[1, 5], [2, 6], [3, 7], [4, 8]]
array.inject(matrix, :fetch)
# => 6