Re: defining a transform from two lists
- To: mathgroup at smc.vnet.net
- Subject: [mg40856] Re: [mg40837] defining a transform from two lists
- From: Bobby Treat <drmajorbob+MathGroup3528 at mailblocks.com>
- Date: Tue, 22 Apr 2003 06:45:40 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
p1=Table[{n@i,a@i},{i,1,5}]
p2=Table[{n@i,b@i},{i,1,5}]
Here's the simple way, but it involves recomputing n, a, and b values:
p3=Table[{n@i,f[a@i,b@i]},{i,1,5}]
Here are three methods:
h[{{n_,a_},{n_,b_}}]:={n,f[a,b]}
h/@Transpose@{p1,p2}
or
Transpose@{p1,p2}/.{{n_,a_},{n_,b_}}:>{n,f[a,b]}
or
hh[{n_, a_}, {n_, b_}] := {n, f[a, b]}
Thread[hh[p1, p2]]
The second n_ could be replaced by _ in all three cases, and that would
speed up the pattern matching -- if there's no danger of the function
being applied inappropriately.
Bobby
-----Original Message-----
From: Nathan Moore <nmoore at physics.umn.edu>
To: mathgroup at smc.vnet.net
Subject: [mg40856] [mg40837] defining a transform from two lists
Suppose I have two lists of similar length,
p1={n[i],a[i]}
and
p2 = {n[i],b[i]}
and I'd like to create a new list,
p3 = { n[i], f[ a[i], b[i] ] }
if the new list comes from one parent list then it is relatively simple
to
write and apply a transform w/ map like
h[{x_,y_}]:={x,f[y]}
newlist = h/@list or = Map[h,list]
but two parent lists confuse me
thanks again!
Nathan Moore,
University of Minnesota Physics