Die Frage ist im Wesentlichen, wie Arrays in Ruby verkettet werden. Natürlich ist die Antwort zu verwenden concat
oder +
wie in fast jeder Antwort erwähnt.
Eine natürliche Erweiterung der Frage wäre "wie eine zeilenweise Verkettung von 2D-Arrays in Ruby durchgeführt wird". Als ich "Ruby Concatenate Matrices" googelte, war diese SO-Frage das Top-Ergebnis, also dachte ich, ich würde meine Antwort auf diese (nicht gestellte, aber verwandte) Frage hier der Nachwelt überlassen.
In einigen Anwendungen möchten Sie möglicherweise zwei 2D-Arrays zeilenweise "verketten". Etwas wie,
[[a, b], | [[x], [[a, b, x],
[c, d]] | [y]] => [c, d, y]]
Dies ist so etwas wie das "Erweitern" einer Matrix. Mit dieser Technik habe ich beispielsweise eine einzelne Adjazenzmatrix erstellt, um einen Graphen aus einer Reihe kleinerer Matrizen darzustellen. Ohne diese Technik hätte ich die Komponenten auf eine Weise durchlaufen müssen, die fehleranfällig oder frustrierend gewesen wäre. Ich hätte each_with_index
zum Beispiel eine machen müssen. Stattdessen habe ich Reißverschluss und Abflachung wie folgt kombiniert :
# 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]]