По суті, питання полягає в тому, як "об'єднати масиви в Ruby". Природно, що відповідь полягає у використанні concat
або +
як згадується майже у кожній відповіді.
Природним продовженням питання було б "як виконувати доречне з'єднання 2D-масивів у Ruby". Коли я гугла "рубінові матриці", це питання було найкращим результатом, тому я подумав, що залишу свою відповідь на це (не задане, але пов'язане) питання для нащадків.
У деяких додатках ви можете "об'єднати" два двовимірні масиви в рядку. Щось на зразок,
[[a, b], | [[x], [[a, b, x],
[c, d]] | [y]] => [c, d, y]]
Це щось на кшталт "збільшення" матриці. Наприклад, я використав цю методику для створення єдиної матриці суміжності, щоб представити графік із купки менших матриць. Без цієї методики мені довелося б переглядати компоненти таким чином, що це могло б бути схильним до помилок або неприємно думати. Я, можливо, мав би зробити щось each_with_index
, наприклад. Натомість я комбінував блискавку і вирівняти так,
# 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]]