Percentiles of a data set

`Y = prctile(X,p)`

`Y = prctile(X,p,'all')`

`Y = prctile(X,p,dim)`

`Y = prctile(X,p,vecdim)`

`Y = prctile(___,'Method',method)`

returns percentiles of the elements in a data vector or array `Y`

= prctile(`X`

,`p`

)`X`

for the
percentages `p`

in the interval [0,100].

If

`X`

is a vector, then`Y`

is a scalar or a vector with the same length as the number of percentiles requested (`length(p)`

).`Y(i)`

contains the`p(i)`

percentile.If

`X`

is a matrix, then`Y`

is a row vector or a matrix, where the number of rows of`Y`

is equal to the number of percentiles requested (`length(p)`

). The`i`

th row of`Y`

contains the`p(i)`

percentiles of each column of`X`

.For multidimensional arrays,

`prctile`

operates along the first nonsingleton dimension of`X`

.

returns percentiles over the dimensions specified in the vector `Y`

= prctile(`X`

,`p`

,`vecdim`

)`vecdim`

.
For example, if `X`

is a matrix, then ```
prctile(X,50,[1
2])
```

returns the 50th percentile of all the elements of `X`

because every element of a matrix is contained in the array slice defined by dimensions 1
and 2.

For an *n*-element vector `X`

, `prctile`

returns percentiles by using a sorting-based algorithm as follows:

The sorted elements in

`X`

are taken as the 100(0.5/*n*)th, 100(1.5/*n*)th, ..., 100([*n*– 0.5]/*n*)th percentiles. For example:For a data vector of five elements such as {6, 3, 2, 10, 1}, the sorted elements {1, 2, 3, 6, 10} respectively correspond to the 10th, 30th, 50th, 70th, and 90th percentiles.

For a data vector of six elements such as {6, 3, 2, 10, 8, 1}, the sorted elements {1, 2, 3, 6, 8, 10} respectively correspond to the (50/6)th, (150/6)th, (250/6)th, (350/6)th, (450/6)th, and (550/6)th percentiles.

`prctile`

uses linear interpolation to compute percentiles for percentages between 100(0.5/*n*) and 100([*n*– 0.5]/*n*).`prctile`

assigns the minimum or maximum values of the elements in`X`

to the percentiles corresponding to the percentages outside that range.

`prctile`

treats `NaN`

s
as missing values and removes them.

[1] Langford, E. “Quartiles in
Elementary Statistics”, *Journal of Statistics Education*. Vol.
14, No. 3, 2006.