La pregunta, esencialmente, es "cómo concatenar matrices en Ruby". Naturalmente, la respuesta es usar concat
o+
como se menciona en casi todas las respuestas.
Una extensión natural de la pregunta sería "cómo realizar una concatenación de filas 2D de matrices 2D en Ruby". Cuando busqué en Google "matrices de concatenación de rubíes", esta pregunta SO fue el resultado principal, así que pensé en dejar mi respuesta a esa pregunta (no formulada pero relacionada) aquí para la posteridad.
En algunas aplicaciones, es posible que desee "concatenar" dos matrices 2D en fila. Algo como,
[[a, b], | [[x], [[a, b, x],
[c, d]] | [y]] => [c, d, y]]
Esto es algo así como "aumentar" una matriz. Por ejemplo, utilicé esta técnica para crear una matriz de adyacencia única para representar un gráfico de un conjunto de matrices más pequeñas. Sin esta técnica, habría tenido que iterar sobre los componentes de una manera que podría haber sido propensa a errores o frustrante. Podría haber tenido que hacer un each_with_index
, por ejemplo. En cambio, combiné zip y flatten de la siguiente manera,
# 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]]