Re: Map onto a column
- To: mathgroup at smc.vnet.net
- Subject: [mg125512] Re: Map onto a column
- From: dr DanW <dmaxwarren at gmail.com>
- Date: Fri, 16 Mar 2012 06:34:02 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jjmv20$cfr$1@smc.vnet.net>
MapAt needs a level specification. I posted this a few years ago, but here it is again: MapAtLevel::usage = "MapAtLevel[\!\(\* StyleBox[\"f\", \"TI\"]\),\!\(\* StyleBox[\"expr\", \"TI\"]\),\!\(\* StyleBox[\"n\", \"TI\"]\),\!\(\* StyleBox[\"levelspec\", \"TI\"]\)] applies \!\(\* StyleBox[\"f\", \"TI\"]\) to the element at position \!\(\* StyleBox[\"n\", \"TI\"]\) at level \!\(\* StyleBox[\"levelspec\", \"TI\"]\) in \!\(\* StyleBox[\"expr\", \"TI\"]\)." MapAtLevel[f_, expr_, n_, levelspec_: {1}] := Map[MapAt[f, #, n] &, expr, levelspec - 1] I have this in a package of useful utilities I load in my init.m. A typical use is when I want to plot data on a Decibel scale: data = Table[{i, 10^(10.*(i/20))}, {i, 5}]; ListPlot[MapAtLevel[20*Log10[#1] & , data, 2, {2}], Joined -> True] Enjoy, Daniel