La question, essentiellement, est "comment concaténer des tableaux en Ruby". Naturellement, la réponse est d'utiliser concat
ou +
comme mentionné dans presque toutes les réponses.
Une extension naturelle de la question serait "comment effectuer la concaténation ligne par ligne des tableaux 2D dans Ruby". Lorsque j'ai googlé "matrices de concaténation rubis", cette question SO était le meilleur résultat, alors j'ai pensé laisser ma réponse à cette question (non demandée mais liée) ici pour la postérité.
Dans certaines applications, vous souhaiterez peut-être "concaténer" deux tableaux 2D en ligne. Quelque chose comme,
[[a, b], | [[x], [[a, b, x],
[c, d]] | [y]] => [c, d, y]]
C'est quelque chose comme "augmenter" une matrice. Par exemple, j'ai utilisé cette technique pour créer une seule matrice d'adjacence pour représenter un graphique à partir d'un tas de matrices plus petites. Sans cette technique, j'aurais dû parcourir les composants d'une manière qui aurait pu être source d'erreurs ou frustrante. J'aurais peut-être dû faire un each_with_index
, par exemple. Au lieu de cela, j'ai combiné zip et aplatir comme suit,
# given two multi-dimensional arrays that you want to concatenate row-wise
m1 = [[:a, :b], [:c, :d]]
m2 = [[:x], [:y]]
m1m2 = m1.zip(m2).map(&:flatten)
# => [[:a, :b, :x], [:c, :d, :y]]