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