require 'matrix'
Matrix[
[1, 2, 4],
[2, 4, 6],
[2, 4, 6],
[2, 4, 6]
] +
Matrix[
[1, 1, 1],
[1, 1, 1],
[1, 1, 1],
[1, 1, 1]
] +
Matrix[
[1, 1, 1],
[1, 1, 1],
[1, 1, 1],
[1, 1, 1]
]
# => Matrix[[3, 4, 6], [4, 6, 8], [4, 6, 8], [4, 6, 8]]
Или, если вы хотите использовать тот же формат, что и в ответе @ Jeriko, то есть вернуть Array
вместо Matrix
:
def sum_arrays(*a)
return *a.map {|m| Matrix[*m] }.reduce(:+)
end
# data you supplied:
x = [[1, 2, 4], [2, 4, 6], [2, 4, 6], [2, 4, 6]]
y = [[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]
z = [[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]
p sum_arrays(x, y, z)
# => [[3, 4, 6], [4, 6, 8], [4, 6, 8], [4, 6, 8]]