Pertanyaannya, pada dasarnya, adalah "bagaimana menggabungkan array di Ruby". Secara alami jawabannya adalah menggunakan concat
atau+
seperti yang disebutkan dalam hampir setiap jawaban.
Sebuah ekstensi alami untuk pertanyaan adalah "bagaimana melakukan penggabungan baris 2D dari array 2D di Ruby". Ketika saya googled "ruby concatenate matrices", pertanyaan SO ini adalah hasil teratas jadi saya pikir saya akan meninggalkan jawaban saya untuk pertanyaan (tanpa diminta tetapi terkait) di sini untuk anak cucu.
Dalam beberapa aplikasi Anda mungkin ingin "menggabungkan" dua array 2D bijaksana. Sesuatu seperti,
[[a, b], | [[x], [[a, b, x],
[c, d]] | [y]] => [c, d, y]]
Ini adalah sesuatu seperti "menambah" sebuah matriks. Sebagai contoh, saya menggunakan teknik ini untuk membuat matriks adjacency tunggal untuk mewakili grafik dari sekelompok matriks yang lebih kecil. Tanpa teknik ini saya harus beralih pada komponen dengan cara yang bisa menjadi rawan kesalahan atau frustasi untuk dipikirkan. Saya mungkin harus melakukan each_with_index
, misalnya. Sebagai gantinya saya menggabungkan zip dan meratakan sebagai berikut,
# 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]]