Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Programing operations with lists

  • To: mathgroup at smc.vnet.net
  • Subject: [mg50870] Re: [mg50856] Programing operations with lists
  • From: Andrzej Kozlowski <andrzejKozlowski at platon.c.u-tokyo.ac.jp>
  • Date: Sat, 25 Sep 2004 01:55:09 -0400 (EDT)
  • References: <200409240841.EAA21761@smc.vnet.net>
  • Reply-to: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Sender: owner-wri-mathgroup at wolfram.com

On 24 Sep 2004, at 17:41, Guillermo Sanchez wrote:

>
> Dear group,
>
> I have two lists with this pattern
>
> list1={{a1 , b1}, ..., {ai , bi}, ...};
>
> list2={c1, ..., c(j-1),  cj, ...};
>
> and a function f[x] (ie: f[x_] = 0.2 x);
>
>
> I would like grouping and sum the product bi f[ai] where
> C(j-1)<ai< cj
>
>
> I show it with an example:
>
> list1 = {{0.71, 7378}, {1.6, 768}, {2, 2269}, {2.05, 0}, {2.35, 0},
> {2.4, 2608}, {2.6, 193}, {2.8, 4187}, {2.85, 204}, {2.95, 134},
> {3.2,776}, {3.25, 24}, {3.6, 6209}, {3.65, 0}, {3.7, 2809}, {3.95, 
> 1923},
> {4,2627}, {4.1, 25}, {4.15, 1}, {4.2, 0}, {4.25, -15}, {4.35, 1863},
> {4.4, 1797}, {4.45, 7533}, {4.5, 0}, {4.55, 53}, {4.7, 12045}, {4.9, 
> 7304},
> {4.95, 34}};
>
>
> list2 = {0.71, 3.2, 4, 4.5, 5}
>
>
> The solution should be:
>
> {{7378 f[0.71] + .. +134 f[2.95]}, ... , {53 f[4.55]+...+34 f[4.95]}}
>
> Thanks
>
> Guillermo
>
>
The following is far from the most efficient way to do this but it is a 
fairly typical example of functional programming. We define a 
subsidiary function:

FF[{a_, b_}, {c_, d_}] := If[a ² c < b, f[c] *d, 0]

and then let it fly:


Function[x,Total[Map[FF[x,#]&,list1]]]/@(Partition[list2,2,1])


{7378 f[0.71]+768 f[1.6]+2269 f[2]+2608 f[2.4]+193 f[2.6]+4187
         f[2.8]+204 f[2.85]+134 f[2.95],
     776 f[3.2]+24 f[3.25]+6209 f[3.6]+2809 f[3.7]+1923 f[3.95],2627 
f[4]+25
f[4.1]+f[4.15]-15 f[4.25]+1863 f[4.35]+1797
     f[4.4]+7533 f[4.45],53 f[4.55]+12045 f[4.7]+7304 f[4.9]+34 f[4.95]}



Andrzej Kozlowski
Chiba, Japan
http://www.akikoz.net/~andrzej/
http://www.mimuw.edu.pl/~akoz/


  • Prev by Date: Re: Programing operations with lists
  • Next by Date: Re: trimming a string
  • Previous by thread: Programing operations with lists
  • Next by thread: Re: Programing operations with lists