คำถามหลักคือ "วิธีการเชื่อมต่ออาร์เรย์ใน Ruby" แน่นอนคำตอบคือการใช้concat
หรือ+
ตามที่กล่าวไว้ในเกือบทุกคำตอบ
ส่วนขยายตามธรรมชาติของคำถามจะเป็น "วิธีดำเนินการเรียงต่อแถวที่ชาญฉลาดของอาร์เรย์ 2 มิติใน Ruby" เมื่อฉัน googled "ruby concatenate matrices" คำถาม SO นี้เป็นผลลัพธ์สูงสุดดังนั้นฉันคิดว่าฉันจะทิ้งคำตอบของฉันไว้ที่คำถาม (ไม่ได้รับการถาม แต่เกี่ยวข้อง) ที่นี่เพื่อลูกหลาน
ในบางแอปพลิเคชันคุณอาจต้องการ "เชื่อมต่อกัน" สองมิติสองแถวเรียงกัน สิ่งที่ต้องการ,
[[a, b], | [[x], [[a, b, x],
[c, d]] | [y]] => [c, d, y]]
นี่คือสิ่งที่ชอบ "การเพิ่ม" เมทริกซ์ ตัวอย่างเช่นฉันใช้เทคนิคนี้เพื่อสร้างเมทริกซ์ adjacency เดียวเพื่อแสดงกราฟจากเมทริกซ์ขนาดเล็ก หากไม่มีเทคนิคนี้ฉันจะต้องวนซ้ำส่วนประกอบต่างๆในลักษณะที่อาจทำให้เกิดข้อผิดพลาดได้ง่ายหรือหงุดหงิดที่จะคิด ฉันอาจจะต้องทำ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]]