Zasadniczo pytanie brzmi: „jak łączyć tablice w Rubim”. Oczywiście odpowiedzią jest użycie concat
lub +
jak wspomniano w prawie każdej odpowiedzi.
Naturalnym rozszerzeniem tego pytania byłoby „jak wykonać wierszowanie konkatenacji tablic 2D w Rubim”. Kiedy przejrzałem „rubinowe konkatenowane matryce”, to SO pytanie było najlepszym wynikiem, więc pomyślałem, że zostawię moją odpowiedź na to (nie zadane, ale powiązane) pytanie tutaj dla potomności.
W niektórych aplikacjach możesz chcieć „połączyć” dwie tablice 2D w rzędy. Coś jak,
[[a, b], | [[x], [[a, b, x],
[c, d]] | [y]] => [c, d, y]]
Jest to coś w rodzaju „powiększania” macierzy. Na przykład wykorzystałem tę technikę, aby utworzyć pojedynczą macierz przylegania do reprezentowania wykresu z szeregu mniejszych macierzy. Bez tej techniki musiałbym iterować komponenty w sposób, który mógłby być podatny na błędy lub frustrujący do myślenia. Być może musiałbym each_with_index
na przykład zrobić . Zamiast tego połączyłem zip i spłaszczyć w następujący sposób,
# 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]]