2

У меня есть список списков чисел. Я добавляю их в один список, добавляя все первые элементы вместе, все остальные элементы вместе и т. Д. Например, если мой список был {{1,2,3}, {1,2,3}, {1 , 2,3,4}} Я хотел бы получить {3,6,9,4}. Как это сделать в Mathematica?Mathematica: добавление списка списков elementwise

ответ

0

Если все строки имеют одинаковую длину, тогда добавление строк сделает это.

Итак, сделайте все строки одинаковой длины, добавив нули, а затем добавьте их.

lists = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3, 4}}; 
max = Max[Length /@ lists]; min = Min[Length /@ lists]; 
zeros = Table[0, {max - min}]; 
Plus @@ Map[Take[Join[#, zeros], max] &, lists] 
1

Среди многих полезных функций, Flatten будет транспонировать 'рваный' массив (см here для хорошего объяснения, или проверить подраздел «Приложение» документации по Flatten)

Total /@ Flatten[#, {{2}}] &@{{1, 2, 3}, {1, 2, 3}, {1, 2, 3, 4}} 

{3, 6, 9, 4}