1
Dans Ruby, étant donné un tableau de tableaux représentant une grille de nombres 2D, comment extrairiez-vous un tableau sub-2D spécifique?Extrait sous-tableau 2D (sans utiliser Matrix)
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]]
Ceci est « facile » à faire en utilisant la bibliothèque 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]]
Cependant, je suis certain qu'il ya une façon élégante de le faire sans utiliser la matrice, peut-être impliquant zip ou transposer:
J'inclus les mots «bidimensionnels» ici pour les résultats de recherche.
Silly moi. Ou même 'xs [rows] .map {| row | rangée [colonnes]} ' – Phrogz
Lovely! J'ai oublié 'values_at'. –
a changé 'values_at' à' [] ',' Array # [] 'est plus intelligent que je pensais :-) – tokland