Re: Map and functional constructs to replace iterative
- To: mathgroup at smc.vnet.net
- Subject: [mg96830] Re: [mg96783] Map and functional constructs to replace iterative
- From: Adriano Pascoletti <adriano.pascoletti at dimi.uniud.it>
- Date: Thu, 26 Feb 2009 07:51:01 -0500 (EST)
- References: <200902250900.EAA15513@smc.vnet.net>
Some solutions In[3]:= vals = {3, 2.5, 7, 4.2, 8, 5.1, 2., 3}; using the built-in Differences: In[4]:= Differences[vals]/100 Out[4]= {-0.005, 0.045, -0.027999999999999997, 0.038, -0.029000000000000005, -0.030999999999999996, 0.01} with list operations In[5]:= ((1./100)*(Rest[#1] - Most[#1]) & )[vals] Out[5]= {-0.005, 0.045, -0.027999999999999997, 0.038, -0.029000000000000005, -0.030999999999999996, 0.01} MapThread In[6]:= (MapThread[(1./100)*(#1 - #2) & , {Rest[#1], Most[#1]}] & )[vals] Out[6]= {-0.005, 0.045, -0.027999999999999997, 0.038, -0.029000000000000005, -0.030999999999999996, 0.01} Transpose and Map In[7]:= (({1, -1} . #1/100. & ) /@ Transpose[{Rest[#1], Most[#1]}] & )[vals] Out[7]= {-0.005, 0.045, -0.027999999999999997, 0.038, -0.029000000000000005, -0.030999999999999996, 0.01} Adriano Pascoletti 2009/2/25 Andreas <aagas at ix.netcom.com> > I have begun to replace Table, Do, While, or For, but in my thinking with > Map, Inner, Outer and other functional programming constructs as I learn > more about Mathematica. > > But, I'm stuck. I need to figure out how to use Map (or some related > approach) when a function needs both a current value and a previous value in > a time series, such as a percentage change function (or perhaps more > generally stated, when I need to refer to previous values in a series or > even previous calculations). But first a simple case: > > percentChange[currentValue_, previousValue_] := 100 * ( currentValue - > previousValue) / previousValue > > I know how to apply this iteratively, but how can I do it with Map or some > other functional construct? > > Say I have a list: timeSeries > > I thought to try something like this: > > Map[percentChange[?,?], timeSeries] > > but I don't know how what to put in for "?". > > Any help much appreciated. > > Thx. > >
- References:
- Map and functional constructs to replace iterative statements
- From: Andreas <aagas@ix.netcom.com>
- Map and functional constructs to replace iterative statements