В Ruby, учитывая массив массивов, представляющих двумерную сетку чисел, как бы вы извлекли конкретный суб-2D массив?
a = [[0, 3, 1, 5, 5],
[4, 6, 8, 3, 5],
[7, 1, 4, 0, 8],
[0, 8, 8, 7, 4],
[7, 2, 4, 5, 4]]
require 'pp'
pp sub_array(a,1..4,2..4)
#=> [[8, 3, 5],
#=> [4, 0, 8],
#=> [8, 7, 4],
#=> [4, 5, 4]]
Это «легко» сделать с помощью Matrix
библиотека:
m = Matrix[*a]
p m.minor(1..4,2..4).to_a
#=> [[8, 3, 5], [4, 0, 8], [8, 7, 4], [4, 5, 4]]
Однако я уверен, что есть элегантный способ сделать это без использования матрицы, возможно, с использованием zip или transpose:)
Я включаю слова "двумерный" здесь для поисковых хитов.