MapIndexed
MapIndexed[f,expr]
applies f to the elements of expr, giving the part specification of each element as a second argument to f.
MapIndexed[f,expr,levelspec]
applies f to all parts of expr on levels specified by levelspec.
MapIndexed[f]
represents an operator form of MapIndexed that can be applied to an expression.
Details and Options
- MapIndexed uses standard level specifications:
-
n levels 1 through n Infinity levels 1 through Infinity {n} level n only {n1,n2} levels n1 through n2 - The default value for levelspec in MapIndexed is {1}.
- A positive level n consists of all parts of expr specified by n indices.
- A negative level -n consists of all parts of expr with depth n.
- Level –1 consists of numbers, symbols, and other objects that do not have subparts.
- Level 0 corresponds to the whole expression.
- With the option setting Heads->True, MapIndexed also applies to heads of expressions and their parts.
- MapIndexed always effectively constructs a complete new expression and then evaluates it.
- MapIndexed works on SparseArray objects, effectively by applying Normal to them.
- MapIndexed works on Association objects, giving part specifications in the form Key[k].
- MapIndexed[f][expr] is equivalent to MapIndexed[f,expr].
- Parallelize[MapIndexed[f,expr]] computes MapIndexed[f,expr] in parallel on all subkernels. »
Examples
open allclose allBasic Examples (6)
#2 gives the indices of each part:
Use the operator form of MapIndexed:
Scope (6)
Generalizations & Extensions (3)
MapIndexed can be used on expressions with any head:
The function can be mapped onto the heads as well:
MapIndexed works on sparse arrays:
Options (2)
Applications (5)
Properties & Relations (3)
Using only the first argument is equivalent to using Map:
The result of MapIndexed on an association is closely related to the result of KeyValueMap:
Use a combination of Values and Part to obtain the same result:
Compute MapIndexed in parallel:
Text
Wolfram Research (1991), MapIndexed, Wolfram Language function, https://reference.wolfram.com/language/ref/MapIndexed.html (updated 2014).
CMS
Wolfram Language. 1991. "MapIndexed." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/MapIndexed.html.
APA
Wolfram Language. (1991). MapIndexed. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MapIndexed.html