2013-08-29 3 views
1

Если у меня есть хэш, который выглядит следующим образом:Ruby: Sum «первого элемента» в каждом массиве

C = [[1, 1, 1, 1], 
    [1, 2, 1, 1], 
    [1, 3, 1, 7], 
    [1, 1, 4, 1]] 

Что такое быстрый способ суммировать столбцы и произвести следующий результат:

C = [4, 7, 7, 10] 

Редактировать: То, как я делал это, исходя из фона C, состояло в том, чтобы разобрать результат и суммировать вручную, вот почему я спросил. не знал, где еще искать.

+0

какая версия рубина вы используете? – Raghu

+1

2.0 ... почему -2 Я не понимаю? – nevermind

+0

Они всегда будут матрицами 4x4? – Shoe

ответ

5
arr = [[1, 1, 1, 1], 
    [1, 2, 1, 1], 
    [1, 3, 1, 7], 
    [1, 1, 4, 1]] 
arr.transpose.map{|e| e.inject(:+)} 
# => [4, 7, 7, 10] 
+1

Спасибо, что работает, не уверен, почему голосует. – nevermind

+2

Downvote был, вероятно, просто неправильным. – Chuck