Re: how to sum lists of unequal length?
- To: mathgroup at smc.vnet.net
- Subject: [mg70406] Re: how to sum lists of unequal length?
- From: "Philpp" <piotr at bigpond.net.au>
- Date: Sun, 15 Oct 2006 00:20:16 -0400 (EDT)
- References: <egq2th$84h$1@smc.vnet.net>
Arek, You might want to use one of the following functions: Clear["sum*"]; sum1[x_List, y_List] := Join[x + Take[y, Length[x]], Take[y, Length[x] - Length[y]]] /; Length[y] >= Length[x] sum1[x_List, y_List] := sum1[y, x] sum2[x_List, y_List] := PadRight[x, Length[y]] + y /; Length[y] >= Length[x] sum2[x_List, y_List] := sum2[y, x] In[1]:= a = {a1, a2, a3}; b = {b1, b2, b3, b4, b5}; sum1[a, b] sum1[a, {}] sum1[{}, {}] sum1[{}, b] sum1[b, a] Out[3]= {a1 + b1, a2 + b2, a3 + b3, b4, b5} Out[4]= {a1, a2, a3} Out[5]= {} Out[6]= {b1, b2, b3, b4, b5} Out[7]= {a1 + b1, a2 + b2, a3 + b3, b4, b5} In[8]:= sum2[a, b] sum2[a, {}] sum2[{}, {}] sum2[{}, b] sum2[b, a] Out[8]= {a1 + b1, a2 + b2, a3 + b3, b4, b5} Out[9]= {a1, a2, a3} Out[10]= {} Out[11]= {b1, b2, b3, b4, b5} Out[12]= {a1 + b1, a2 + b2, a3 + b3, b4, b5} I hope this is what you wanted. Cheers, Phil. Arkadiusz.Majka at gmail.com wrote: > Hi all, > > I have lists of unknown and unequal lengths. I want to sum them, e.g > > {a1,a2,a3}+{b1,b2,b3,b4,b5} and obtain result > {a1+b1,a2+b2,a3+b3,b4,b5}. Simply filling by zeros of the shorter list > is impossible because I have no idea how many zeros I have to pad. > > Please, help > > Arek