1.9 KiB
1.9 KiB
Function map
Create a new matrix or array with the results of a callback function executed on each entry of a given matrix/array.
For each entry of the input, the callback is invoked with three arguments: the value of the entry, the index at which that entry occurs, and the full matrix/array being traversed. Note that because the matrix/array might be multidimensional, the "index" argument is always an array of numbers giving the index in each dimension. This is true even for vectors: the "index" argument is an array of length 1, rather than simply a number.
Syntax
math.map(x, callback)
Parameters
Parameter | Type | Description |
---|---|---|
x |
Matrix | Array | The input to iterate on. |
callback |
Function | The function to call (as described above) on each entry of the input |
Returns
Type | Description |
---|---|
Matrix | array | Transformed map of x; always has the same type and shape as x |
Throws
Type | Description |
---|
Examples
math.map([1, 2, 3], function(value) {
return value * value
}) // returns [1, 4, 9]
// The calling convention for the callback can cause subtleties:
math.map([1, 2, 3], math.format)
// throws TypeError: map attempted to call 'format(1,[0])' but argument 2 of type Array does not match expected type number or function or Object or string or boolean
// [This happens because `format` _can_ take a second argument,
// but its semantics don't match that of the 2nd argument `map` provides]
// To avoid this error, use a function that takes exactly the
// desired arguments:
math.map([1, 2, 3], x => math.format(x)) // returns ['1', '2', '3']