Re: Conditonal sum

*To*: mathgroup at smc.vnet.net*Subject*: [mg50267] Re: [mg50263] Conditonal sum*From*: "Owen, HL (Hywel)" <H.L.Owen at dl.ac.uk>*Date*: Tue, 24 Aug 2004 06:22:01 -0400 (EDT)*Sender*: owner-wri-mathgroup at wolfram.com

The way to think about this is to separate the If[] selection from the summing. For example, to select only positive values on a mylist defined as e.g.: mylist={-1,2,-2,4,1} we would use: If[#>0,#,{}]&/@mylist This leaves a messy list, so we Flatten it to get rid of the empty sets: Flatten[If[# > 0, #, {}] & /@ mylist] The sum is then generated by applying Plus[] to this expression: Plus @@ Flatten[If[# > 0, #, {}] & /@ mylist] Cheers, Hywel > -----Original Message----- > From: Christopher Grinde [mailto:christopher.grinde at hive.no] To: mathgroup at smc.vnet.net > Sent: 23 August 2004 11:35 > To: mathgroup at smc.vnet.net > Subject: [mg50267] [mg50263] Conditonal sum > > > I am new to mathematica and could really need a tip on how to > implement a > conditional sum. Pseudocode would be something like this > > > EndSum=a; > if j in Sm: > EndSum=EndSum+f[j] > end > > > I have tried doing this by using an If-clause inside the > sum-function, but > > this seems little elegant and is nor very suitable for > symbolic calculations. > > Any advice would be highly appreciated > > Christopher Grinde >