# MapAt

MapAt[f,expr,n]

applies f to the element at position n in expr. If n is negative, the position is counted from the end.

MapAt[f,expr,{i,j,}]

applies f to the part of expr at position {i,j,}.

MapAt[f,expr,{{i1,j1,},{i2,j2,},}]

applies f to parts of expr at several positions.

MapAt[f,pos]

represents an operator form of MapAt that can be applied to an expression.

# Details

• MapAt[f,expr,{i,j,}] or MapAt[f,expr,{{i,j,}}] applies f to the part expr[[i,j,]].
• MapAt[f,expr,{{i1,j1,},{i2,j2,},}] applies f to parts expr[[i1,j1,]], expr[[i2,j2,]], . »
• The list of positions used by MapAt is in the same form as is returned by the function Position. »
• MapAt works on Association objects, using the same specification for keys as in Part.
• MapAt applies f repeatedly to a particular part if that part is mentioned more than once in the list of positions. »
• MapAt[f,pos][expr] is equivalent to MapAt[f,expr,pos].

# Examples

open allclose all

## Basic Examples(8)

Map f onto the part at position 2:

Map f onto multiple parts:

Map f onto a more deeply nested part:

Map f onto the second element of all top-level parts (the "second column"):

Map f onto an association:

Use Key to specify position:

For string keys, Key is not needed:

Use negative position in an association:

Use the operator form of MapAt:

## Scope(9)

### Part Specifications(9)

A single element of the expression:

Negative numbers count from the end:

Map at a part at level 2:

Map at several elements:

Map at several nested parts:

Map using Span syntax:

Map f at a more deeply nested part:

Map f at several locations:

Map f at several levels:

## Generalizations & Extensions(4)

MapAt can be used on expressions with any head:

Key and integer part specifications in associations are different:

The function can be mapped onto the heads as well:

Map can be used on sparse arrays:

## Applications(4)

Reset an element in a matrix:

Reverse the sign of an element in a matrix:

Enumerate cases with f mapped onto successive elements:

Reverse the color of a cell at a random position at each step:

## Properties & Relations(2)

MapAt can use lists of parts returned by Position:

These are the subexpressions returned by Extract:

MapAt applies f repeatedly if a part is mentioned repeatedly:

## Possible Issues(1)

MapAt[f,expr,{}] does not map f because the list of positions is empty:

MapAt[f,expr,{{}}] maps f to position {}, which corresponds to the whole expression expr:

Wolfram Research (1988), MapAt, Wolfram Language function, https://reference.wolfram.com/language/ref/MapAt.html (updated 2014).

#### Text

Wolfram Research (1988), MapAt, Wolfram Language function, https://reference.wolfram.com/language/ref/MapAt.html (updated 2014).

#### CMS

Wolfram Language. 1988. "MapAt." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/MapAt.html.

#### APA

Wolfram Language. (1988). MapAt. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MapAt.html

#### BibTeX

@misc{reference.wolfram_2024_mapat, author="Wolfram Research", title="{MapAt}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/MapAt.html}", note=[Accessed: 13-June-2024 ]}

#### BibLaTeX

@online{reference.wolfram_2024_mapat, organization={Wolfram Research}, title={MapAt}, year={2014}, url={https://reference.wolfram.com/language/ref/MapAt.html}, note=[Accessed: 13-June-2024 ]}