## Some Useful MATLAB File Exchange Submissions
Written by Daniel Herber on March 19, 2016.
### What is the MATLAB File Exchange?
> File Exchange lets you find and share custom applications, classes, code examples, drivers, functions, Simulink models, scripts, and videos.
The MATLAB File Exchange (MFX) about page is at link. The code is free and typically under a license that allows reuse. The remaining sections are devoted to some MFX submissions that are generally useful. This is not a complete list but just a selection. Search the file exchange for other submissions that might solve your MATLAB problems!
### Scientific Computing
1. [diffxy](http://www.mathworks.com/matlabcentral/fileexchange/29312) - Second-order accurate numerical differentiation (N-dimensional).
2. [DGradient](http://www.mathworks.com/matlabcentral/fileexchange/29887) - Gradient of arrays as fast C-Mex.
3. [distmat](http://www.mathworks.com/matlabcentral/fileexchange/15145) - Fast, vectorized inter/intra-point distance matrix calculation (Euclidean, Manhattan, or Chebyshev).
4. [Inpaint Over Missing Data in 1-D, 2-D, 3-D, N-D Arrays](http://www.mathworks.com/matlabcentral/fileexchange/27994) - Computes the missing data in the N-D array X.
5. [Fix Step ODE Solvers](http://www.mathworks.com/matlabcentral/answers/98293) - Code for ode1, ode2, ode3, ode4, ode5.
- Technically a MATLAB Answer.
6. [Ipopt](https://projects.coin-or.org/Ipopt) - Interior Point OPTimizer, pronounced eye-pea-Opt, is a software package for large-scale nonlinear optimization.
- Technically not on MATLAB File Exchange.
7. [grTheory - Graph Theory Toolbox](http://www.mathworks.com/matlabcentral/fileexchange/4266) - 28 functions for different tasks of graph theory.
8. [MATLAB Support for the MinGW-w64 C/C++ Compiler](http://www.mathworks.com/matlabcentral/fileexchange/52848) - Compiler suite for Windows.
1. [Export Fig](http://www.mathworks.com/matlabcentral/fileexchange/23629) - Exports figures nicely to a number of vector & bitmap formats.
- Keep an eye out for this fix: [fix_matlab_eps](https://github.com/Sbte/fix_matlab_eps)
2. [Format Tick Labels (Extended v2)](http://www.mathworks.com/matlabcentral/fileexchange/46431) - Replace tick labels with LaTeX compatible objects. Some of this functionality has been included in newer versions of MATLAB
- Some of this functionality has been included in newer versions of MATLAB.
3. [AnimateLaTeX](http://www.mathworks.com/matlabcentral/fileexchange/17813) - Generates LaTeX source code for pdf-animations.
4. [Cubehelix Colormaps: Beautiful, Distinct, Versatile!](http://www.mathworks.com/matlabcentral/fileexchange/43700) - The most versatile colormap generator ever! Suitable for grayscale conversion. Maximally distinct.
5. [Export Figure to 3D Interactive PDF](http://www.mathworks.com/matlabcentral/fileexchange/37640) - Export figure as U3D file or directly to 3D interactive graphics within PDF.
6. [tight_subplot](http://www.mathworks.com/matlabcentral/fileexchange/27991) - Fills the figure with axes subplots with easily adjustable margins and gaps between the axes.
1. [dispstat](http://www.mathworks.com/matlabcentral/fileexchange/44673) - Overwritable message outputs to commandline window.
2. [Send Messages to Emails and/or Cell Phones](http://www.mathworks.com/matlabcentral/fileexchange/48143) - This function sends messages to emails and/or cell phones (from a Gmail account).
- See my blog post on this submission: [2014/10/28 - #2](http://www.danielherber.com/matlab.php?option=post_2)
3. [MDCSTest](http://www.mathworks.com/matlabcentral/fileexchange/44396) - Flexible MATLAB benchmarking program for multiple workers, long jobs, and high memory tasks.
4. [mfoldername](http://www.mathworks.com/matlabcentral/fileexchange/40397) - Creates a path to easily save or load your results no matter where your function is located.
5. [M-code LaTeX Package](http://www.mathworks.com/matlabcentral/fileexchange/8015) - Easily include nicely syntax highlighted m-code in your LaTeX documents.
### Optimal Control
My research involves methods for numerically solving optimal control problems. The MFX is a great resource to find code from other authors in your research area. Listed are some interesting optimal control-related MFX submissions.
1. [Optimal Control Using Control Vector Parameterization](http://www.mathworks.com/matlabcentral/fileexchange/39516) - An example of using control vector parameterization to solve an optimal control problem.
2. [An Optimal Control Tutorial for Beginners](http://www.mathworks.com/matlabcentral/fileexchange/25889) - A tutorial and sample code for solving optimal control problems with indirect methods.
3. [Aerospace Trajectory Optimization Using Direct Transcription and Collocation](http://www.mathworks.com/matlabcentral/fileexchange/38936) - Demonstrates the solution of an aerospace trajectory optimization problem.
4. [trajOpt (trajectory optimization library)](http://www.mathworks.com/matlabcentral/fileexchange/54386) - A toolbox for Matlab, for solving continuous time trajectory optimization problems.
5. [Simultaneous Plant and Control Design of an Active Automotive Suspension Using Direct Transcription](http://www.mathworks.com/matlabcentral/fileexchange/40504) - A toolbox for using Direct Transcription to perform combined plant and control design ([Journal Paper](http://systemdesign.illinois.edu/publications/All14b.pdf)).
6. [Basic Implementation of Multiple-Interval Pseudospectral Methods to Solve Optimal Control Problems](http://www.mathworks.com/matlabcentral/fileexchange/51104) - This code replicates the results found in a tech report by the same name.
- One of my submissions ([Technical Report](http://systemdesign.illinois.edu/publications/Her15a.pdf))
Any suggestions for this list? Email me at [firstname.lastname@example.org](mailto:herber1%20at%20illinois.edu).
My MFX community profile is at [link](http://www.mathworks.com/matlabcentral/profile/authors/4048528).