La domanda, in sostanza, è "come concatenare le matrici in Ruby". Naturalmente la risposta è usare concat
o +
come menzionato in quasi ogni risposta.
Un'estensione naturale della domanda sarebbe "come eseguire la concatenazione di array 2D in Ruby". Quando ho cercato su Google "matrici concatenate di rubini", questa domanda SO è stata il miglior risultato, quindi ho pensato di lasciare la mia risposta a quella domanda (non richiesta ma correlata) qui per i posteri.
In alcune applicazioni potresti voler "concatenare" due array 2D in ordine di riga. Qualcosa di simile a,
[[a, b], | [[x], [[a, b, x],
[c, d]] | [y]] => [c, d, y]]
Questo è qualcosa come "aumentare" una matrice. Ad esempio, ho usato questa tecnica per creare una singola matrice di adiacenza per rappresentare un grafico da un gruppo di matrici più piccole. Senza questa tecnica avrei dovuto scorrere i componenti in un modo che avrebbe potuto essere soggetto a errori o frustrante a cui pensare. Potrei aver dovuto fare un each_with_index
, per esempio. Invece ho combinato zip e appiattire come segue,
# 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]]