Truncated multivariate normal

Generates pseudo-random vectors drawn from the truncated multivariate normal distribution.
2K Downloads
Updated 26 Aug 2015

View License

X = rmvnrnd(MU,SIG,N,A,B) returns in N-by-P matrix X a
random sample drawn from the P-dimensional multivariate normal
distribution with mean MU and covariance SIG truncated to a
region bounded by the hyperplanes defined by the inequalities Ax<=B.
[X,RHO,NAR,NGIBBS] = rmvnrnd(MU,SIG,N,A,B) returns the
acceptance rate RHO of the accept-reject portion of the algorithm
(see below), the number NAR of returned samples generated by
the accept-reject algorithm, and the number NGIBBS returned by
the Gibbs sampler portion of the algorithm.
rmvnrnd(MU,SIG,N,A,B,RHOTHR) sets the minimum acceptable
acceptance rate for the accept-reject portion of the algorithm
to RHOTHR. The default is the empirically identified value
2.9e-4.

Cite As

Tim Benham (2024). Truncated multivariate normal (https://www.mathworks.com/matlabcentral/fileexchange/34402-truncated-multivariate-normal), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Random Number Generation in Help Center and MATLAB Answers
Acknowledgements

Inspired by: Truncated Gaussian, chebycenter(A,b,r0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.5.0.0

Uses chebycenter to find a feasible point to seed the Gibbs sampler if the the random generation does not find one.

1.4.0.0

1. Correct problem with initialization of the Gibbs sampler.
2. Behave correctly when no constraints supplied.

1.3.0.0

Added example and improved interface.

1.2.0.0

Changed interface to support omission of A and b. Added example script rmvnrnd_eg.

1.0.0.0