Estaba intentando algunos problemas con mi matriz de ruby 2D y mi LOC se reduce mucho cuando hago un corte de matriz. Así, por ejemplo,Ruby obteniendo los elementos diagonales en un 2d Array
require "test/unit"
class LibraryTest < Test::Unit::TestCase
def test_box
array = [[1,2,3,4],[3,4,5,6], [5,6,7,8], [2,3,4,5]]
puts array[1][2..3] # 5, 6
puts array[1..2][1] # 5, 6, 7, 8
end
end
quiero saber si hay una manera de conseguir una rebanada diagonal? Digamos que quiero empezar a [0,0] y quiere una rebanada diagonal de 3. Luego obtendría elementos de [0,0], [1,1], [2,2] y voy a tener una serie como [1,4,7] por ejemplo arriba. ¿Hay algún código mágico de rubí de una sola línea que pueda lograr esto? 3x hacer algunas cosas {magia?}
usted probablemente sabe esto, pero 'pone array [1..2] [1]' es equivalente to 'puts array [2]', not 'puts array [1..2] .map {| arr | arr [1]} '. No estoy seguro de si el uso de matrices de matrices de la manera correcta de hacer las cosas, pero no he sido capaz de construir algo mejor. –
Esa era mi intención. Pero tu respuesta sigue siendo muy útil. Gracias :) –