# makedist

Create probability distribution object

## Syntax

``pd = makedist(distname)``
``pd = makedist(distname,Name,Value)``
``list = makedist``
``makedist -reset``

## Description

example

````pd = makedist(distname)` creates a probability distribution object for the distribution `distname`, using the default parameter values.```

example

````pd = makedist(distname,Name,Value)` creates a probability distribution object with one or more distribution parameter values specified by name-value pair arguments.```
````list = makedist` returns a cell array `list` containing a list of the probability distributions that `makedist` can create.```
````makedist -reset` resets the list of distributions by searching the path for files contained in a namespace named `prob` and implementing classes derived from `ProbabilityDistribution`. Use this syntax after you define a custom distribution function. For details, see Define Custom Distributions Using the Distribution Fitter App.```

## Examples

collapse all

Create a normal distribution object using the default parameter values, which correspond to the parameters of the standard normal distribution.

`pd = makedist('Normal')`
```pd = NormalDistribution Normal distribution mu = 0 sigma = 1 ```

You can use the object functions of `pd` to evaluate the distribution and generate random numbers. Display the supported object functions.

`methods(pd)`
```Methods for class prob.NormalDistribution: cdf gather icdf iqr mean median negloglik paramci pdf plot proflik random std truncate var ```

For example, compute the interquartile range of the distribution by using the `iqr` function.

`r = iqr(pd)`
```r = 1.3490 ```

Create a gamma distribution object using the default parameter values.

`pd = makedist('Gamma')`
```pd = GammaDistribution Gamma distribution a = 1 b = 1 ```

Compute the mean of the gamma distribution.

`mean = mean(pd)`
```mean = 1 ```

Create a normal distribution object with parameter values `mu = 75` and `sigma = 10`.

`pd = makedist('Normal','mu',75,'sigma',10)`
```pd = NormalDistribution Normal distribution mu = 75 sigma = 10 ```

Create a gamma distribution object with the parameter value `a = 3` and the default value `b = 1`.

`pd = makedist('Gamma','a',3)`
```pd = GammaDistribution Gamma distribution a = 3 b = 1 ```

## Input Arguments

collapse all

Distribution name, specified as one of the following character vectors or string scalars. The distribution specified by `distname` determines the type of the returned probability distribution object.

Distribution NameDescriptionDistribution Object
`'Beta'`Beta distribution`BetaDistribution`
`'Binomial'`Binomial distribution`BinomialDistribution`
`'BirnbaumSaunders'`Birnbaum-Saunders distribution`BirnbaumSaundersDistribution`
`'Burr'`Burr distribution`BurrDistribution`
`'Exponential'`Exponential distribution`ExponentialDistribution`
`'ExtremeValue'`Extreme Value distribution`ExtremeValueDistribution`
`'Gamma'`Gamma distribution`GammaDistribution`
`'GeneralizedExtremeValue'`Generalized Extreme Value distribution`GeneralizedExtremeValueDistribution`
`'GeneralizedPareto'`Generalized Pareto distribution`GeneralizedParetoDistribution`
`'HalfNormal'`Half-normal distribution`HalfNormalDistribution`
`'InverseGaussian'`Inverse Gaussian distribution`InverseGaussianDistribution`
`'Logistic'`Logistic distribution`LogisticDistribution`
`'Loglogistic'`Loglogistic distribution`LoglogisticDistribution`
`'Lognormal'`Lognormal distribution`LognormalDistribution`
`'Loguniform'`Loguniform distribution`LoguniformDistribution`
`'Multinomial'`Multinomial distribution`MultinomialDistribution`
`'Nakagami'`Nakagami distribution`NakagamiDistribution`
`'NegativeBinomial'`Negative Binomial distribution`NegativeBinomialDistribution`
`'Normal'`Normal distribution`NormalDistribution`
`'PiecewiseLinear'`Piecewise Linear distribution`PiecewiseLinearDistribution`
`'Poisson'`Poisson distribution`PoissonDistribution`
`'Rayleigh'`Rayleigh distribution`RayleighDistribution`
`'Rician'`Rician distribution`RicianDistribution`
`'Stable'`Stable distribution`StableDistribution`
`'tLocationScale'`t Location-Scale distribution`tLocationScaleDistribution`
`'Triangular'`Triangular distribution`TriangularDistribution`
`'Uniform'`Uniform distribution`UniformDistribution`
`'Weibull'`Weibull distribution`WeibullDistribution`

### Name-Value Arguments

Specify optional pairs of arguments as `Name1=Value1,...,NameN=ValueN`, where `Name` is the argument name and `Value` is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose `Name` in quotes.

Example: `makedist('Normal','mu',10)` specifies a normal distribution with parameter `mu` equal to 10, and parameter `sigma` equal to the default value of 1.

Beta Distribution

collapse all

First shape parameter of a beta distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Beta'`.

Example: `'a',3`

Data Types: `single` | `double`

Second shape parameter of a beta distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Beta'`.

Example: `'b',5`

Data Types: `single` | `double`

Binomial Distribution

collapse all

Number of trials for a binomial distribution, specified as a positive integer value. This argument is valid only when `distname` is `'Binomial'`.

Example: `'N',25`

Data Types: `single` | `double`

Probability of success of any individual trial for a binomial distribution, specified as a scalar value in the range [0,1]. This argument is valid only when `distname` is `'Binomial'`.

Example: `'p',0.25`

Data Types: `single` | `double`

Birnbaum-Saunders Distribution

collapse all

Scale parameter of a Birnbaum-Saunders distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'BirnbaumSaunders'`.

Example: `'beta',2`

Data Types: `single` | `double`

Shape parameter of a Birnbaum-Saunders distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'BirnbaumSaunders'`.

Example: `'gamma',0.5`

Data Types: `single` | `double`

Burr Distribution

collapse all

Scale parameter of a Burr distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Burr'`.

Example: `'alpha',2`

Data Types: `single` | `double`

First shape parameter of a Burr distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Burr'`.

Example: `'c',2`

Data Types: `single` | `double`

Second shape parameter of a Burr distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Burr'`.

Example: `'k',5`

Data Types: `single` | `double`

Exponential Distribution

collapse all

Mean of an exponential distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Exponential'`.

Example: `'mu',5`

Data Types: `single` | `double`

Extreme Value Distribution

collapse all

Location parameter of an extreme value distribution, specified as a scalar value. This argument is valid only when `distname` is `'ExtremeValue'`.

Example: `'mu',-2`

Data Types: `single` | `double`

Scale parameter of an extreme value distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'ExtremeValue'`.

Example: `'sigma',2`

Data Types: `single` | `double`

Gamma Distribution

collapse all

Shape parameter of a gamma distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Gamma'`.

Example: `'a',2`

Data Types: `single` | `double`

Scale parameter of a gamma distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'Gamma'`.

Example: `'b',0`

Data Types: `single` | `double`

Generalized Extreme Value Distribution

collapse all

Shape parameter of a generalized extreme value distribution, specified as a scalar value. This argument is valid only when `distname` is `'GeneralizedExtremeValue'`.

Example: `'k',0`

Data Types: `single` | `double`

Scale parameter of a generalized extreme value distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'GeneralizedExtremeValue'`.

Example: `'sigma',2`

Data Types: `single` | `double`

Location parameter of a generalized extreme value distribution, specified as a scalar value. This argument is valid only when `distname` is `'GeneralizedExtremeValue'`.

Example: `'mu',1`

Data Types: `single` | `double`

Generalized Pareto Distribution

collapse all

Shape parameter of a generalized Pareto distribution, specified as a scalar value. This argument is valid only when `distname` is `'GeneralizedPareto'`.

Example: `'k',0`

Data Types: `single` | `double`

Scale parameter of a generalized Pareto distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'GeneralizedPareto'`.

Example: `'sigma',2`

Data Types: `single` | `double`

Location (threshold) parameter of a generalized Pareto distribution, specified as a scalar value. This argument is valid only when `distname` is `'GeneralizedPareto'`.

Example: `'theta',2`

Data Types: `single` | `double`

Half-Normal Distribution

collapse all

Location parameter of a half-normal distribution, specified as a scalar value. This argument is valid only when `distname` is `'HalfNormal'`.

Example: `'mu',1`

Data Types: `single` | `double`

Scale parameter of a half-normal distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'HalfNormal'`.

Example: `'sigma',2`

Data Types: `single` | `double`

Inverse Gaussian Distribution

collapse all

Scale parameter of an inverse Gaussian distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'InverseGaussian'`.

Example: `'mu',2`

Data Types: `single` | `double`

Shape parameter of an inverse Gaussian distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'InverseGaussian'`.

Example: `'lambda',4`

Data Types: `single` | `double`

Logistic Distribution

collapse all

Mean of a logistic distribution, specified as a scalar value. This argument is valid only when `distname` is `'Logistic'`.

Example: `'mu',2`

Data Types: `single` | `double`

Scale parameter of a logistic distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'Logistic'`.

Example: `'sigma',4`

Data Types: `single` | `double`

Loglogistic Distribution

collapse all

Mean of logarithmic values for a loglogistic distribution, specified as a scalar value. This argument is valid only when `distname` is `'Loglogistic'`.

Example: `'mu',2`

Data Types: `single` | `double`

Scale parameter of logarithmic values for a loglogistic distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Loglogistic'`.

Example: `'sigma',4`

Data Types: `single` | `double`

Lognormal Distribution

collapse all

Mean of logarithmic values for a lognormal distribution, specified as a scalar value. This argument is valid only when `distname` is `'Lognormal'`.

Example: `'mu',2`

Data Types: `single` | `double`

Standard deviation of logarithmic values for a lognormal distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'Lognormal'`.

Example: `'sigma',2`

Data Types: `single` | `double`

Loguniform Distribution

collapse all

Lower limit for a loguniform distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'Loguniform'`.

Example: `'Lower',2`

Data Types: `single` | `double`

Upper limit for a loguniform distribution, specified as a scalar value greater than `Lower`. This argument is valid only when `distname` is `'Loguniform'`.

Example: `'Upper',6`

Data Types: `single` | `double`

Multinomial Distribution

collapse all

Outcome probabilities for a multinomial distribution, specified as a vector of scalar values in the range [0,1]. The probabilities sum to 1 and correspond to outcomes [1, 2, ..., k], where k is the number of elements in the probabilities vector. This argument is valid only when `distname` is `'Multinomial'`.

Example: `'Probabilities',[0.1 0.2 0.5 0.2]` gives the probabilities that the outcome is 1, 2, 3, or 4, respectively.

Data Types: `single` | `double`

Nakagami Distribution

collapse all

Shape parameter of a Nakagami distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Nakagami'`.

Example: `'mu',5`

Data Types: `single` | `double`

Scale parameter of a Nakagami distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Nakagami'`.

Example: `'omega',5`

Data Types: `single` | `double`

Negative Binomial Distribution

collapse all

Number of successes for a negative binomial distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'NegativeBinomial'`.

Example: `'R',5`

Data Types: `single` | `double`

Probability of success of any individual trial for a negative binomial distribution, specified as a scalar value in the range (0,1]. This argument is valid only when `distname` is `'NegativeBinomial'`.

Example: `'P',0.1`

Data Types: `single` | `double`

Normal Distribution

collapse all

Mean of a normal distribution, specified as a scalar value. This argument is valid only when `distname` is `'Normal'`.

Example: `'mu',2`

Data Types: `single` | `double`

Standard deviation of a normal distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'Normal'`.

Example: `'sigma',2`

Data Types: `single` | `double`

Piecewise Linear Distribution

collapse all

Data values at which the cumulative distribution function (cdf) changes slope for a piecewise linear distribution, specified as a monotonically increasing vector of scalar values. This argument is valid only when `distname` is `'PiecewiseLinear'`.

Example: `'x',[1 2 3]`

Data Types: `single` | `double`

cdf value at each value in `x` for a piecewise linear distribution, specified as a monotonically increasing vector of scalar values that start at 0 and end at 1. This argument is valid only when `distname` is `'PiecewiseLinear'`.

Example: `'Fx',[0.2 0.5 1]`

Data Types: `single` | `double`

Poisson Distribution

collapse all

Mean of a Poisson distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'Poisson'`.

Example: `'lambda',5`

Data Types: `single` | `double`

Rayleigh Distribution

collapse all

Defining parameter of a Rayleigh distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Rayleigh'`.

Example: `'B',3`

Data Types: `single` | `double`

Rician Distribution

collapse all

Noncentrality parameter of a Rician distribution, specified as a nonnegative scalar value. This argument is valid only when `distname` is `'Rician'`.

Example: `'s',0`

Data Types: `single` | `double`

Scale parameter of a Rician distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Rician'`.

Example: `'sigma',2`

Data Types: `single` | `double`

Stable Distribution

collapse all

First shape parameter of a stable distribution, specified as a scalar value in the range (0,2]. This argument is valid only when `distname` is `'Stable'`.

Example: `'alpha',1`

Data Types: `single` | `double`

Second shape parameter of a stable distribution, specified as a scalar value in the range [–1,1]. This argument is valid only when `distname` is `'Stable'`.

Example: `'beta',0.5`

Data Types: `single` | `double`

Scale parameter of a stable distribution, specified as a scalar value in the range (0,∞). This argument is valid only when `distname` is `'Stable'`.

Example: `'gam',2`

Data Types: `single` | `double`

Location parameter of a stable distribution, specified as a scalar value. This argument is valid only when `distname` is `'Stable'`.

Example: `'delta',5`

Data Types: `single` | `double`

t Location-Scale Distribution

collapse all

Location parameter of a t location-scale distribution, specified as a scalar value. This argument is valid only when `distname` is `'tLocationScale'`.

Example: `'mu',-2`

Data Types: `single` | `double`

Scale parameter of a t location-scale distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'tLocationScale'`.

Example: `'sigma',2`

Data Types: `single` | `double`

Degrees of freedom of a t location-scale distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'tLocationScale'`.

Example: `'nu',20`

Data Types: `single` | `double`

Triangular Distribution

collapse all

Lower limit for a triangular distribution, specified as a scalar value. This argument is valid only when `distname` is `'Triangular'`.

Example: `'A',-2`

Data Types: `single` | `double`

Peak location for a triangular distribution, specified as a scalar value greater than or equal to `A`. This argument is valid only when `distname` is `'Triangular'`.

Example: `'B',1`

Data Types: `single` | `double`

Upper limit for a triangular distribution, specified as a scalar value greater than or equal to `B`. This argument is valid only when `distname` is `'Triangular'`.

Example: `'C',5`

Data Types: `single` | `double`

Uniform Distribution

collapse all

Lower limit for a uniform distribution, specified as a scalar value. This argument is valid only when `distname` is `'Uniform'`.

Example: `'Lower',-4`

Data Types: `single` | `double`

Upper limit for a uniform distribution, specified as a scalar value greater than `Lower`. This argument is valid only when `distname` is `'Uniform'`.

Example: `'Upper',2`

Data Types: `single` | `double`

Weibull Distribution

collapse all

Scale parameter of a Weibull distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Weibull'`.

Example: `'A',2`

Data Types: `single` | `double`

Shape parameter of a Weibull distribution, specified as a positive scalar value. This argument is valid only when `distname` is `'Weibull'`.

Example: `'B',5`

Data Types: `single` | `double`

## Output Arguments

collapse all

Probability distribution, returned as a probability distribution object of the type specified by `distname`.

List of probability distributions that `makedist` can create, returned as a cell array of character vectors.

## Alternative Functionality

### App

The Distribution Fitter app opens a graphical user interface for you to import data from the workspace and interactively fit a probability distribution to that data. You can then save the distribution to the workspace as a probability distribution object. Open the Distribution Fitter app using `distributionFitter`, or click Distribution Fitter on the Apps tab.

## Version History

Introduced in R2013a