# makedist

Create probability distribution object

## 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 package 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 =

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 =

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
'Binomial'Binomial distributionBinomialDistribution
'BirnbaumSaunders'Birnbaum-Saunders distributionBirnbaumSaundersDistribution
'Burr'Burr distributionBurrDistribution
'Exponential'Exponential distributionExponentialDistribution
'ExtremeValue'Extreme Value distributionExtremeValueDistribution
'GeneralizedExtremeValue'Generalized Extreme Value distributionGeneralizedExtremeValueDistribution
'GeneralizedPareto'Generalized Pareto distributionGeneralizedParetoDistribution
'HalfNormal'Half-normal distributionHalfNormalDistribution
'InverseGaussian'Inverse Gaussian distributionInverseGaussianDistribution
'Logistic'Logistic distributionLogisticDistribution
'Loglogistic'Loglogistic distributionLoglogisticDistribution
'Lognormal'Lognormal distributionLognormalDistribution
'Loguniform'Loguniform distributionLoguniformDistribution
'Multinomial'Multinomial distributionMultinomialDistribution
'Nakagami'Nakagami distributionNakagamiDistribution
'NegativeBinomial'Negative Binomial distributionNegativeBinomialDistribution
'Normal'Normal distributionNormalDistribution
'PiecewiseLinear'Piecewise Linear distributionPiecewiseLinearDistribution
'Poisson'Poisson distributionPoissonDistribution
'Rayleigh'Rayleigh distributionRayleighDistribution
'Rician'Rician distributionRicianDistribution
'Stable'Stable distributionStableDistribution
'tLocationScale't Location-Scale distributiontLocationScaleDistribution
'Triangular'Triangular distributionTriangularDistribution
'Uniform'Uniform distributionUniformDistribution
'Weibull'Weibull distributionWeibullDistribution

### 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