2

我有一个数字列表。我通过将所有第一个元素加在一起,将所有第二个元素加在一起等方式将它们添加到一个列表中。例如,如果我的列表是 { {1,2,3}, {1,2,3}, {1 ,2,3,4} } 我想以 {3,6,9,4} 结尾。我如何在 Mathematica 中做到这一点?

4

3 回答 3

2
a = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3, 4}};

Total@PadRight@a

{3、6、9、4}

于 2015-08-01T11:16:05.050 回答
1

在其众多有用的功能中,Flatten将转置一个“参差不齐”的数组(请参阅此处以获得很好的解释,或查看 Flatten文档的“应用程序”小节)

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

{3、6、9、4}

于 2016-03-08T10:29:37.723 回答
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]
于 2015-08-01T03:49:30.553 回答