The MIN function returns the value of the smallest element of Array. The type of the result is the same as that of Array.

## Examples

`; Create a simple two-dimensional array:D = DIST(100); Find the minimum value in array D and print the result:PRINT, MIN(D)`

## Syntax

Result = MIN( Array [, Min_Subscript] [, /ABSOLUTE] [, DIMENSION=value] [, MAX=variable] [, /NAN] [, SUBSCRIPT_MAX=variable])

## Return Value

Returns the smallest array element value.

## Arguments

### Array

The array to be searched.

### Min_Subscript

A named variable that, if supplied, is converted to a long integer containing the one-dimensional subscript of the minimum element. Otherwise, the system variable !C is set to the one-dimensional subscript of the minimum element.

## Keywords

### ABSOLUTE

If this keyword is set, then the absolute value of each element is used when determining the minimum values. This keyword has no effect for arrays of type byte or unsigned integer.

Note: If ABSOLUTE is set then the sign of each value is ignored when searching for the minimum. However, the return value retains the negative sign if the value was indeed negative.

Tip: For complex input, MIN by default only compares the real component of each value. Use the ABSOLUTE keyword to force MIN to compare the absolute value of each value, and to return the complex value corresponding to the minimum absolute value.

### DIMENSION

Set this keyword to the dimension over which to find the minimum values of an array. If this keyword is not present or is zero, the minimum is found over the entire array and is returned as a scalar value. If this keyword is present and nonzero, the result is the “slice” of the input array that contains the minimum value element, and the return values for Result, Min_Subscript, MAX, and SUBSCRIPT_MAX will all be arrays of one dimension less than the input array. That is, if the dimensions of Array are N1, N2, N3, and DIMENSION=2, the dimensions of the result are (N1, N3), and element (i,j) of the result contains the minimum value of Array[i, *, j].

For example:

`arr = FINDGEN(2,3,2)PRINT, arr`

IDL prints:

`0.00000     1.00000`
`2.00000     3.00000`
`4.00000     5.00000`
` `
`6.00000     7.00000`
`8.00000     9.00000`
`10.0000     11.0000`
` `
`PRINT, MIN(arr, DIMENSION=2)`

IDL prints:

`0.00000     1.00000`
`6.00000     7.00000`
` `
`PRINT, MIN(arr, DIMENSION=1)`

IDL prints:

`0.00000     2.00000     4.00000`
`6.00000     8.00000     10.0000`

### MAX

The name of a variable to receive the value of the maximum array element. If you need to find both the minimum and maximum array values, use this keyword to avoid scanning the array twice with separate calls to MAX and MIN.

### NAN

Set this keyword to cause the routine to check for occurrences of the IEEE floating-point values NaN or Infinity in the input data. Elements with the value NaN or Infinity are treated as missing data.

Note: If the MIN function is run on an array containing NaN values and the NAN keyword is not set, the NaN values will still be treated as missing data but a floating-point warning may occur.

### SUBSCRIPT_MAX

Set this keyword to a named variable that will contain the one-dimensional subscript of the maximum element, the value of which is available via the MAX keyword.