  Markov Chain Monte Carlo (MCMC) algorithms are widely used for stochastic
optimization, sampling, and integration of mathematical objective functions, in
particular, in the context of Bayesian inverse problems and parameter
estimation. For decades, the algorithm of choice in MCMC simulations has been
the Metropolis-Hastings (MH) algorithm. An advancement over the traditional
MH-MCMC sampler is the Delayed-Rejection Adaptive Metropolis (DRAM). In this
paper, we present MatDRAM, a stochastic optimization, sampling, and Monte Carlo
integration toolbox in MATLAB which implements a variant of the DRAM algorithm
for exploring the mathematical objective functions of arbitrary-dimensions, in
particular, the posterior distributions of Bayesian models in data science,
Machine Learning, and scientific inference. The design goals of MatDRAM include
nearly-full automation of MCMC simulations, user-friendliness,
fully-deterministic reproducibility, and the restart functionality of
simulations. We also discuss the implementation details of a technique to
automatically monitor and ensure the diminishing adaptation of the proposal
distribution of the DRAM algorithm and a method of efficiently storing the
resulting simulated Markov chains. The MatDRAM library is open-source,
MIT-licensed, and permanently located and maintained as part of the ParaMonte
library at https://github.com/cdslaborg/paramonte.
