Index of max and min value in an array
matlab, matrix
Solution
As pointed by Evgeni `max` and `min` can return the `argmax` and `argmin` as second arguments. It is worth while noting that you can use these functions along specific dimensions:
A = rand(4); % 4x4 matrix
[ row_max row_argmax ] = max( A, [], 2 ); % max for each row - 2nd dimension
[ col_min col_argmin ] = min( A, [], 1 ); % min for each column - 1st dimension
Note the empty `[]` second argument - it is crucial `max( A, [], 2 )` is not at all equivalent to `max( A, 2 )` (I'll leave it to you as a small exercise to see what `max( A, 2 )` does).
The argmax/argmin returned from these "along dimension" calls are row/col indices.
Problem
How can I find the index of the maximum element in an array without looping? For example, if I have: ``` a = [1 2 999 3]; ``` I want to define a function `indexMax` so that `indexMax(a)` would return `3`. Likewise for defining `indexMin`.