mapreducedim
mapreducedim(f, op, A, dims[, initial])
Evaluates to the same as reducedim(op, map(f, A), dims, f(initial))
, but is generally faster because the intermediate array is avoided.
Examples

Apply a function to each element and reduce along dimensions:
julia> A = [1 2 3; 4 5 6; 7 8 9]; julia> mapreducedim(x > x^2, +, A, 2) 3element Array{Int64,1}: 14 77 194
This example squares each element of matrix
A
and then sums the squared values along the second dimension (columns). 
Perform elementwise operation and reduce along specified dimensions:
julia> A = [1 2 3; 4 5 6; 7 8 9]; julia> mapreducedim(x > x^2, *, A, 1) 3element Array{Int64,1}: 28 80 162
It squares each element of matrix
A
and then multiplies the squared values along the first dimension (rows).  Specify an initial value for reduction:
julia> A = [1 2 3; 4 5 6; 7 8 9]; julia> mapreducedim(x > x^2, max, A, 2, 0) 3element Array{Int64,1}: 9 36 81
In this example, the initial value for reduction is set to 0. The function squares each element of matrix
A
and then finds the maximum squared value along the second dimension (columns), starting from the initial value.
Common mistake example:
julia> A = [1 2 3; 4 5 6; 7 8 9];
julia> mapreducedim(x > x^2, +, A, 3)
ERROR: DimensionMismatch("dimension out of range")
In this example, the specified dimension is out of range for matrix A
. It's important to provide valid dimensions that exist in the array to avoid such errors. Doublecheck the dimensions of the array and ensure they are within the appropriate range when using mapreducedim
.
See Also
foldl, foldr, mapfoldl, mapfoldr, mapreduce, mapreducedim,User Contributed Notes
Add a Note
The format of note supported is markdown, use triple backtick to start and end a code block.