# lacerbi / lautils-mat

Luigi Acerbi's utility functions for MATLAB.

## Files

Failed to load latest commit information.
Type
Name
Commit time

## lautils-mat: Luigi Acerbi's utility functions for MATLAB

This is a collection of MATLAB utility functions that I wrote (unless otherwise specified), and that I share among a number of projects. Functions in the following list have been consistently used or at least somewhat tested. Undocumented functions in the repository might be untested/deprecated, so use only at your own risk.

Functions marked with (+) are pretty useful functions that I use regularly. Functions marked with (++) have been game-changers for several projects.

Functions are loosely divided in folders by category.

### Math (`./math`)

Numerical and math-related functions.

• (++) `bsxfunandsum.m`: Element-by-element matrix operation followed by sum (prevents memory overflow with huge matrices)
• `derivcheck.m`: Check analytical vs numerical differentiation for a function
• `fgrad.m`: Estimation of function gradient via finite differences
• `fhess.m`: Estimation of function Hessian via finite differences
• `intpower.m`: Array integer power (faster than `.^` with large matrices)
• (+) `lininterp1.m`: Linear 1D interpolation on a regular grid (like `interp1.m`, but faster)
• `logsumexp.m`: Compute `log(sum(exp(X)))` while avoiding numerical underflow
• `nansumall.m`: Sum of all elements, ignoring NaN values
• (+) `qcumtrapz.m`: Quick cumulative trapezoidal numerical integration
• (++) `qtrapz.m`: Quick trapezoidal numerical integration (3-4 times faster than `trapz.m` on large arrays)

### Markov Chain Monte Carlo sampling (`./mcmc`)

MCMC samplers and related files.

• `maxsample.m`: Stochastic exploration of high-valued regions of a function (untested)
• `mhsamplecon.m`: Metropolis-Hastings with reflective constraints (untested)

### Optimization (`./optim`)

Optimization algorithms and related functions.

• `cmaes_wrapper.m`: A wrapper with a simplified interface for the CMA-ES algorithm (requires `cmaes.m`)
• `coordtransf.m`: Coordinate transform
• `fminfold.m`: Multi-fold optimization (work in progress); uses `fminfold_wrap.m`
• `fmingrid.m`: Multidimensional minimization via grid search
• (+) `fminmulti.m`: Function minimization via recursive multi-start method (usable but needs improvement)
• (+) `funlogger.m`: Record log of calls to a specific function
• `lhs.m`: Latin hypercube sample
• (+) `qargmax1`: Quick and dirty numerical argmax via 1-D quadratic interpolation
• `transvars.m`: Another coordinate transform function

### Plotting (`./plot`)

Plotting and graphics functions.

• `graph.m`: Prepare a boxed, annotated graph
• `multigraph.m`: Prepare a graph with multiple panels (usable, but needs rehauling)
• `scatterbars.m`: Scatter/bubble plot with error bars (unused?)

### PsychToolbox Add-ons (`./psych`)

A bunch of functions for PsychToolbox that I wrote during my PhD. Nothing particularly useful.

### Statistics (`./stats`)

Probability distributions and other statistics-related functions.

• `binbuild.m`: Build binned data
• `binolike.m`: Negative log-likelihood for the binomial distribution
• (++) `bsxfun_normcdf.m`, `bsxfun_normlogpdf.m`, `bsxfun_normpdf.m`: Vectorized normal cdf, log pdf and pdf
• (+) `fisher2kappa.m`: Fisher information to Von Mises concentration parameter
• `gaussks1.m`: 1-D Gaussian kernel smooth function approximation
• `gpinterp1.m`: 1-D interpolation using Gaussian process (requires GPML toolbox)
• `moments.m`: Central moments of discrete distribution
• (++) `qrandvm.m`: Quick Von Mises distributed pseudorandom numbers (faster than `circ_vmrnd.m` from the Circular Statistics Toolbox)
• `randntrim.m`: Normally distributed trimmed pseudorandom numbers (dumb rejection method)
• `randx.m`: Uniformly distributed non-overlapping random points
• `samplemeanpdf.m`: Sampling distribution of the mean (see also `samplemeanpdf_test.m`)
• `sqmean.m`, `sqsum.m`: Return root of squared mean/sum of data
• `stderr.m`: Standard error of the mean (ignores `NaN`s)

### Standard and input/output functions (`./stdio`)

Functions that deal with format conversion, argument parsing, structure manipulation and related miscellanea.

Luigi Acerbi's utility functions for MATLAB.