Re: InputStream in version 3 vs version 4
- To: mathgroup at smc.vnet.net
- Subject: [mg18818] Re: InputStream in version 3 vs version 4
- From: "David Bailey" <dave-bailey at freeuk.com>
- Date: Thu, 22 Jul 1999 08:19:32 -0400
- References: <7n1313$bda@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
ELLIS, Luci wrote in message <7n1313$bda at smc.vnet.net>... > >Failing this, can anyone suggest a robust way to turn a list of functions >and a matrix of data into a matrix where the elements of each row are the >elements of the original matrix transformed by the corresponding function? > >That is: >functions= {f[#]&, g[#]&, h[#]&} >data = {{data[1,1],data[1,2],data[1,3]},{data[2,1],data[2,2],data[2,3}, >{data[3,1],data[3,2],data[3,3}, >{data[4,1],data[4,2],data[4,3]},{data[5,1],data[5,2],data[5,3}} > >output= {f[data[1,1]], g[data[1,2]], h[data[1,3]]}, {f[data[2,1]], >g[data[2,2]], h[data[2,3]]}, {f[data[3,1]], g[data[3,2]], h[data[3,3]]}, >{f[data[4,1]], g[data[4,2]], h[data[4,3]]}, {f[data[5,1]], g[data[5,2]], >h[data[5,3]]}, > >I've tried various combinations of Map, MapThread, Thread and Inner without >success. > First, we can neaten up your list of functions, but you could still use pure functions if you need them of course. functions = {f, g, h}; Now we define some data: ss = Array[a, {5, 3}] {{a[1, 1], a[1, 2], a[1, 3]}, {a[2, 1], a[2, 2], a[2, 3]}, {a[3, 1], a[3, 2], a[3, 3]}, {a[4, 1], a[4, 2], a[4, 3]}, {a[5, 1], a[5, 2], a[5, 3]}} This will apply the functions as you require. There are probably many other ways of doing this! Transpose[MapThread[Map, {functions, Transpose[ss]}]] David Bailey Salford Software db at salford-software.com