# min

Minimum elements of symbolic input

## Syntax

``M = min(A)``
``M = min(A,[],nanflag)``
``M = min(A,[],dim)``
``M = min(A,[],dim,nanflag)``
``M = min(A,[],'all')``
``M = min(A,[],'all',nanflag)``
``C = min(A,B)``
``C = min(A,B,nanflag)``

## Description

example

````M = min(A)` returns the minimum elements of a symbolic input. If `A` is a vector, then `min(A)` returns the minimum of `A`.If `A` is a matrix, then `min(A)` is a row vector containing the minimum value of each column. For an input `A` that contains symbolic expression, the symbolic `min` function returns an unevaluated expression that is reduced by eliminating arguments that do not represent minimum values. The output may have another argument that represents the condition for the symbolic variable. For example, `syms x; min([1 x])` returns the output ```min([1, x], [], 2, 'Omitnan', ~in(x, 'real'))``` in the Command Window since `x` is complex.```

example

````M = min(A,[],nanflag)` specifies whether to include or omit `NaN` values in the calculation. For example, `min(A,[],'includenan')` includes all `NaN` values in `A` while `min(A,[],'omitnan')` ignores them.```

example

````M = min(A,[],dim)` returns the minimum element along dimension `dim`. For example, if `A` is a matrix, then `min(A,[],2)` is a column vector containing the minimum value of each row.```
````M = min(A,[],dim,nanflag)` also specifies the dimension to operate along when using the `nanflag` option.```

example

````M = min(A,[],'all')` returns the minimum over all elements of `A`.```
````M = min(A,[],'all',nanflag)` computes the minimum over all elements of `A` when using the `nanflag` option.```

example

````C = min(A,B)` returns an array with the smallest elements taken from `A` or `B`.```
````C = min(A,B,nanflag)` also specifies how to treat `NaN` values.```

## Examples

collapse all

Create a symbolic vector of real elements. Find the smallest real element using the symbolic `min` function.

```syms x real A = [23 42 37 18 x]; M = min(A)```
`M = $\mathrm{min}\left(\left[18,x\right],\left[\right],2,\mathrm{"omitnan"},\mathrm{symfalse}\right)$`

The symbolic `min` function returns an unevaluated expression. The expression is reduced by eliminating arguments that do not represent minimum values.

Create a symbolic vector and compute its minimum, excluding `NaN` values.

```syms x positive A = [1.75 x 3.25 -2.5 NaN 0.5 NaN 0.2 -4*x]; M = min(A,[],'omitnan')```
```M =  $\mathrm{min}\left(\left[-\frac{5}{2},-4 x\right],\left[\right],2,\mathrm{"omitnan"},\mathrm{symfalse}\right)$```

`min(A)` will also produce this result since `'omitnan'` is the default option.

Use the `'includenan'` flag to return `NaN`.

`M = min(A,[],'includenan')`
`M = $\mathrm{NaN}$`

Create a symbolic matrix and find the smallest element in each column.

```syms x real A = [1 x -0.5; -2 1 x]```
```A =  $\left(\begin{array}{ccc}1& x& -\frac{1}{2}\\ -2& 1& x\end{array}\right)$```
`M = min(A)`
```M =  $\left(\begin{array}{ccc}-2& \mathrm{min}\left(\left[1,x\right],\left[\right],2,\mathrm{"omitnan"},\mathrm{symfalse}\right)& \mathrm{min}\left(\left[-\frac{1}{2},x\right],\left[\right],2,\mathrm{"omitnan"},\mathrm{symfalse}\right)\end{array}\right)$```

Create a symbolic matrix and find the smallest element in each row.

```syms x real A = [1 x -0.5; -2 1 x]```
```A =  $\left(\begin{array}{ccc}1& x& -\frac{1}{2}\\ -2& 1& x\end{array}\right)$```
`M = min(A,[],2)`
```M =  $\left(\begin{array}{c}\mathrm{min}\left(\left[-\frac{1}{2},x\right],\left[\right],2,\mathrm{"omitnan"},\mathrm{symfalse}\right)\\ \mathrm{min}\left(\left[-2,x\right],\left[\right],2,\mathrm{"omitnan"},\mathrm{symfalse}\right)\end{array}\right)$```

Create a symbolic matrix.

```syms x real A = [1 x -0.5; -2 1 x]```
```A =  $\left(\begin{array}{ccc}1& x& -\frac{1}{2}\\ -2& 1& x\end{array}\right)$```

To find the minimum over all dimensions of a matrix, use the `'all'` option.

`M = min(A,[],'all')`
`M = $\mathrm{min}\left(\left[-2,x\right],\left[\right],2,\mathrm{"omitnan"},\mathrm{symfalse}\right)$`

Create two symbolic matrices with complex elements. Find the smallest elements taken from the two matrices, which are complex values with the smallest magnitude.

```syms x y A = [x 2+1i; 3 4i; -5 y]```
```A =  $\left(\begin{array}{cc}x& 2+\mathrm{i}\\ 3& 4 \mathrm{i}\\ -5& y\end{array}\right)$```
`B = [1 y; 2i 1+1i; -3 x]`
```B =  $\left(\begin{array}{cc}1& y\\ 2 \mathrm{i}& 1+\mathrm{i}\\ -3& x\end{array}\right)$```
`C = min(A,B)`
```C =  $\left(\begin{array}{cc}\mathrm{min}\left(\left[1,x\right],\left[\right],2,\mathrm{"omitnan"},x\notin \mathbb{R}\right)& \mathrm{min}\left(\left[2+\mathrm{i},y\right],\left[\right],2,\mathrm{"omitnan"},\mathrm{symtrue}\right)\\ 2 \mathrm{i}& 1+\mathrm{i}\\ -3& \mathrm{min}\left(\left[x,y\right],\left[\right],2,\mathrm{"omitnan"},x\notin \mathbb{R}\vee y\notin \mathbb{R}\right)\end{array}\right)$```

Define the following expression by using the symbolic `min` function. Assume that the variable $x$ is real.

`$\mathit{f}\left(\mathit{x}\right)=\left\{\begin{array}{ll}0& \mathit{x}>1\\ \sqrt{1-\mathit{x}}& \mathit{x}<1\end{array}$`

```syms x real f(x) = sqrt(1 - min(x,1))```
```f(x) =  $\sqrt{1-\mathrm{min}\left(\left[1,x\right],\left[\right],2,\mathrm{"omitnan"},\mathrm{symfalse}\right)}$```

Plot the expression by using `fplot`.

`fplot(f,[-5 5])`

## Input Arguments

collapse all

Input array, specified as a symbolic expression, vector, or matrix of symbolic expressions.

• If `A` is complex, then `min(A)` returns the complex number with the smallest magnitude. If magnitudes are equal, then `min(A)` returns the value with the smallest magnitude and the smallest phase angle.

• If `A` is a scalar, then `min(A)` returns `A`.

• If `A` is a 0-by-0 empty array, then `min(A)` is an empty array as well.

Data Types: `sym` | `single` | `double`
Complex Number Support: Yes

`NaN` condition, specified as one of these values:

• `'omitnan'` — Ignore all `NaN` values in the input. If all elements are `NaN`, then `min` returns the first one.

• `'includenan'` — Include the `NaN` values in the input for the calculation.

Data Types: `char`

Dimension to operate along, specified as a positive integer scalar. If no value is specified, then the default is the first array dimension whose size does not equal 1.

Dimension `dim` indicates the dimension whose length reduces to `1`. The `size(M,dim)` is `1`, while the sizes of all other dimensions remain the same, unless `size(A,dim)` is `0`. If `size(A,dim)` is `0`, then `min(A,dim)` returns an empty array with the same size as `A`.

Consider a two-dimensional input array, `A`:

• If `dim = 1`, then `min(A,[],1)` returns a row vector containing the smallest element in each column.

• If `dim = 2`, then `min(A,[],2)` returns a column vector containing the smallest element in each row.

`min` returns `A` if `dim` is greater than `ndims(A)`.

Additional input array, specified as a symbolic expression, vector, or matrix of symbolic expressions. Inputs `A` and `B` must either be the same size or have sizes that are compatible (for example, `A` is an `M`-by-`N` matrix and `B` is a scalar or `1`-by-`N` row vector). For more information, see Compatible Array Sizes for Basic Operations.

Data Types: `sym` | `single` | `double`
Complex Number Support: Yes

## Output Arguments

collapse all

Minimum values, returned as a symbolic expression, vector, or matrix of symbolic expressions. `size(M,dim)` is `1`, while the sizes of all other dimensions match the size of the corresponding dimension in `A`, unless `size(A,dim)` is `0`. If `size(A,dim)` is `0`, then `M` is an empty array with the same size as `A`.

Minimum elements from `A` or `B`, returned as a symbolic expression, vector, or matrix of symbolic expressions. The size of `C` is determined by implicit expansion of the dimensions of `A` and `B`. For more information, see Compatible Array Sizes for Basic Operations.

## Version History

Introduced in R2021a