# mode

Most frequent values in array

## Syntax

• `M = mode(A)` example
• `M = mode(A,dim)` example
• ```[M,F] = mode(___)``` example
• ```[M,F,C] = mode(___)``` example

## Description

example

````M = mode(A)` returns the sample mode of `A`, which is the most frequently occurring value in `A`. When there are multiple values occurring equally frequently, `mode` returns the smallest of those values. For complex inputs, the smallest value is the first value in a sorted list.If `A` is a vector, then `mode(A)` returns the most frequent value of `A`.If `A` is a nonempty matrix, then `mode(A)` returns a row vector containing the mode of each column of `A`.If `A` is an empty 0-by-0 matrix, `mode(A)` returns `NaN`.If `A` is a multidimensional array, then `mode(A)` treats the values along the first array dimension whose size does not equal `1` as vectors and returns an array of most frequent values. The size of this dimension becomes `1` while the sizes of all other dimensions remain the same.```

example

````M = mode(A,dim)` returns the mode of elements along dimension `dim`. For example, if `A` is a matrix, then `mode(A,2)` is a column vector containing the most frequent value of each row```

example

``````[M,F] = mode(___)``` also returns a frequency array `F`, using any of the input arguments in the previous syntaxes. `F` is the same size as `M`, and each element of `F` represents the number of occurrences of the corresponding element of `M`.```

example

``````[M,F,C] = mode(___)``` also returns a cell array `C` of the same size as `M` and `F`. Each element of `C` is a sorted vector of all values that have the same frequency as the corresponding element of `M`.```

## Examples

collapse all

### Mode of Matrix Columns

Define a 3-by-4 matrix.

`A = [3 3 1 4; 0 0 1 1; 0 1 2 4]`
```A = 3 3 1 4 0 0 1 1 0 1 2 4 ```

Find the most frequent value of each column.

`M = mode(A)`
```M = 0 0 1 4```

### Mode of Matrix Rows

Define a 3-by-4 matrix.

`A = [3 3 1 4; 0 0 1 1; 0 1 2 4]`
```A = 3 3 1 4 0 0 1 1 0 1 2 4 ```

Find the most frequent value of each row.

`M = mode(A,2)`
```M = 3 0 0```

### Mode of 3-D Array

Create a 1-by-3-by-4 array of integers between `1` and `10`.

`A = gallery('integerdata',10,[1,3,4],1)`
```A(:,:,1) = 10 8 10 A(:,:,2) = 6 9 5 A(:,:,3) = 9 6 1 A(:,:,4) = 4 9 5```

Find the most frequent values of this 3-D array along the second dimension.

`M = mode(A)`
```M(:,:,1) = 10 M(:,:,2) = 5 M(:,:,3) = 1 M(:,:,4) = 4```

This operation produces a 1-by-1-by-4 array by finding the most frequent value along the second dimension. The size of the second dimension reduces to `1`.

Compute the mode along the first dimension of `A`.

```M = mode(A,1); isequal(A,M)```
```ans = 1```

This returns the same array as `A` because the size of the first dimension is `1`.

### Mode of Matrix Columns with Frequency Information

Define a 3-by-4 matrix.

`A = [3 3 1 4; 0 0 1 1; 0 1 2 4]`
```A = 3 3 1 4 0 0 1 1 0 1 2 4 ```

Find the most frequent value of each column, as well as how often it occurs.

`[M,F] = mode(A)`
```M = 0 0 1 4 F = 2 1 2 2```

`F(1)` is `2` since `M(1)` occurs twice in the first column.

### Mode of Matrix Rows with Frequency and Multiplicity Information

Define a 3-by-4 matrix.

`A = [3 3 1 4; 0 0 1 1; 0 1 2 4]`
```A = 3 3 1 4 0 0 1 1 0 1 2 4 ```

Find the most frequent value of each row, how often it occurs, and which values in that row occur with the same frequency.

`[M,F,C] = mode(A,2)`
```M = 3 0 0 F = 2 2 1 C = [ 3] [2x1 double] [4x1 double]```

`C{2}` is the 2-by-1 vector `[0;1]` since values `0` and `1` in the second row occur with frequency `F(2)`.

`C{3}` is the 4-by-1 vector `[0;1;2;4]` since all values in the third row occur with frequency `F(3)`.

### Mode of 16-bit Unsigned Integer Array

Define a 1-by-4 vector of 16-bit unsigned integers.

`A = gallery('integerdata',10,[1,4],3,'uint16')`
```A = 6 3 2 3```

Find the most frequent value, as well as the number of times it occurs.

```[M,F] = mode(A), class(M)```
```M = 3 F = 2 ans = uint16```

`M` is the same class as the input, `A`.

## Input Arguments

collapse all

### `A` — Input arrayvector | matrix | multidimensional array

Input array, specified as a vector, matrix, or multidimensional array. `A` can be a numeric array, categorical array, datetime array, or duration array.

`NaN` or `NaT` (Not a Time) values in the input array, `A`, are ignored. Undefined values in categorical arrays are similar to `NaN`s in numeric arrays.

### `dim` — Dimension to operate alongpositive integer scalar

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.

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

• If `dim = 1`, then `mode(A,1)` returns a row vector containing the most frequent value in each column.

• If `dim = 2`, then `mode(A,2)` returns a column vector containing the most frequent value in each row.

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

Data Types: `double` | `single` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`

## Output Arguments

collapse all

### `M` — Most frequent valuesscalar | vector | matrix | multidimensional array

Most frequent values returned as a scalar, vector, matrix, or multidimensional array. When there are multiple values occurring equally frequently, `mode` returns the smallest of those values. For complex inputs, this is taken to be the first value in a sorted list of values.

The class of `M` is the same as the class of the input array, `A`.

### `F` — Frequency arrayscalar | vector | matrix | multidimensional array

Frequency array returned as a scalar, vector, matrix, or multidimensional array. The size of `F` is the same as the size of `M`, and each element of `F` represents the number of occurrences of the corresponding element of `M`.

The class of `F` is always `double`.

### `C` — Most frequent values with multiplicitycell array

Most frequent values with multiplicity returned as a cell array. The size of `C` is the same as the size of `M` and `F`, and each element of `C` is a sorted column vector of all values that have the same frequency as the corresponding element of `M`.

collapse all

### Tips

• The `mode` function is most useful with discrete or coarsely rounded data. The mode for a continuous probability distribution is defined as the peak of its density function. Applying the `mode` function to a sample from that distribution is unlikely to provide a good estimate of the peak; it would be better to compute a histogram or density estimate and calculate the peak of that estimate. Also, the `mode` function is not suitable for finding peaks in distributions having multiple modes.