如何访问嵌套元素,使用坐标传递数组

时间:2015-01-18 18:06:47

标签: ruby arrays matrix

是否有任何简短的方法来访问嵌套数组的元素,并使用坐标传递数组?我的意思是:

matrix = [[1,2,3,4],[5,6,7,8]]
array = [1,1]

matrix [array]
# => 6

我只是想知道是否有比以下更短的版本:

matrix [array[0]][array[1]]

3 个答案:

答案 0 :(得分:2)

我相信你想使用Matrix类:

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

答案 1 :(得分:1)

array.inject(matrix, :fetch)
# => 6

答案 2 :(得分:0)

matrix[1][1]

应该等于6. matrix [1]是第二个数组,matrix [1] [1]是该数组中的第二个元素。