My MATLAB Package and Toolbox Picks
Table of Contents
 CrossProduct Toolboxes
 Parallel Processing
 Shorthands
 File Systems
 Graphics
 GUI Components and Utilities
 Statistics
 Curve and Surface Fitting
 Science and Engineering
 Debugging
CrossProduct Toolboxes
 MATLink — Communicate with MATLAB from Mathematica

MATLink is a Mathematica™ application to communicate with MATLAB™, providing functionality to easily transfer data between the two systems, and use MATLAB functions, scripts, and toolboxes from within Mathematica.
Learn more: MATLink Package for Mathematica  YouTube
 SMATLINK  Let MATLAB Dance with Mathematica

A toolbox allows calling Mathematica kernel from MATLAB 7.x
 MATLAB Rlink

An interface that allows you to call R functions from within MATLAB.
 smop: Small MATLAB to Python compiler

A Python package translates MATLAB code to Python. See also:
 oct2py: GNU Octave to Python bridge

A Python package runs MFiles and Octave functions from Python
 Parallel Distributed Processing of Weka Algorithms in MATLAB

Run Weka algorithms in parallel across distributed computers in MATLAB.
 mweka: Running Machine Learning Tool Weka from MATLAB

A GUI runs the Weka classifiers and displays the results in MATLAB.
[Plotly  Online MATLAB Graphing](https://www.mathworks.com/matlabcentral/fileexchange/42202plotly%7Conlinematlabgraphing “File Exchange  MATLAB Central”) 
: A package converts your MATLAB figures into online Plotly graphs with a single line of code.
 MATLAB for Kate and Kwrite

Syntax highlighting file for Linux/KDE editors Kate and Kwrite.
Parallel Processing
 Multicore  Parallel processing on multiple cores

This package provides parallel processing on multiple cores on a single machine or on multiple machines that have access to a common directory.
 GPUBench

This package times different MATLAB GPU tasks and estimates the peak performance of your GPU in floatingpoint operations per second (FLOP/s). It produces a detailed HTML report showing how your GPU’s performance compares to prestored performance results from a range of other GPUs.
 pMatlab

This package provides a set of MATLAB data structures and functions that implement distributed MATLAB arrays for Parallel array programming.
 Fast String to Double Conversion

A function converts text to double like MATLAB’s str2double, but up to 400x faster! multithreaded.
Learn more:
 Techniques to Improve Performance  MathWorks
 Profile Your Code to Improve Performance  MathWorks

 Measure the Performance of Your Code  MathWorks

cputime
 Estimate elapsed CPU time.
tic
andtoc
 Start stopwatch timer and read elapsed time from stopwatch, respectively.
Shorthands
MATLAB: Variables and Data Type Operations
 disperse

A function assigns elements of an input array to individual output variables with a single function call.
 Shared variable

A helper class to create a shared object as a nickname, or alias, for some other variable.
 CATSTRUCT

A helper function to concatenate or merge structures with different field names.
 ForEach

A toolbox enables simple, readable, and powerful forloops in MATLAB.
 Pack & Unpack variables to & from structures with enhanced functionality

A function converts variables to structures, and vice versa
Arithmetic Operations
 Round with significant digits

A function rounds a number (or the elements of a vector or matrix) towards the nearest number with N significant digits.
Set Operations
 countmember

A function counts the number of times the elements of array A are present in array B.
 CStrAinBP

A function finds the overlapping element of 2 cell strings with 1020 times faster than
INTERSECT
/ISMEMBER
/SETDIFF
andUNION
.  FINDIND

A function finds indices of matching elements between two arrays/matrices
MFile Utilities
 Align equal sign

A function allows you to align equal signs in the MATLAB editor.
 % MATLAB Comment Stripping Toolbox

A small collection of utilities for stripping MATLAB comments from MATLAB code.
 BetterHelp

A toolbox to improve MATLAB’s help functionality for functions that do not have their own help files.
Custom Display Interfaces
 Text progress bar

A function to create a TEXT progress bar in your command window.
 statusbar

A function to set/get status bar(s) for GUI figures & MATLAB desktop.
 timebar

A function creates a progress window, similar to a waitbar, that shows the progress of calculations using a sliding bar, a displayed percentage complete, and an estimated time remaining.
Import/Export
 SaveEditorProfile.m

A function creates the file ‘RestoreEditorProfile.m’ in the current directory.
 Straightforward COPY and PASTE functions

Allows very simple manual exchange with other applications through the clipboard.
 MAT2CLIP

A function copies the contents of 2D matrix A to the system clipboard.
 num2clip: copy numerical arrays to clipboard

A function copies a numerical array to the clipboard as a tabseparated string ready for pasting.
 matrix2lyx

A function converts a MATLAB matrix to a LyX table.
 JSON Parser

A function parses JSON strings. It converts JSON arrays into cell arrays and JSON objects into structures.
 JSONlab: a toolbox to encode/decode JSON files in MATLAB/Octave

A toolbox to encode/decode JSON/UBJSON/MessagePack files in MATLAB/Octave.
 xml2struct

A function converts an XML file into a MATLAB structure for easy access to the data.
 XMLNode

A toolbox allows you to read an XML document into MATLAB as an XMLNode object.
File Systems
 genpath_exclude

A wrapper for
genpath
, but can exclude/ignore directories using regular expressions.  lsr

A wrapper for
ls
, which lists the files in one or more folders with regexp and combinatorial logic (and, or, not, etc).  NaturalOrder Filename Sort

A toolbox to alphanumeric sort of filenames or filepaths, with the customizable numeric format.
 Recursive directory listing  Enhanced RDIR

A function lists files and directories in a directory and its subdirectories recursively.
Related: File I/O and File System in MATLAB
Graphics
Advanced Plot Functions
 line_fewer_markers

An alias of the LINE command, with additional control for markers, in number and location.
 Plot (Big)

A toolbox makes MATLAB’s line plots much faster by reduces data to the smallest possible set that looks identical given the number of pixels available on the screen.
 prettyplot

A function creates prettier line plots with markers without the line and markers being on top of each other.
 Beautiful and distinguishable line colors + colormap

A function creates a plot with lots of lines with very distinguishable and aesthetically pleasing colors. Works for N colors.
 Contour Line Smoothing

A function creates a contour plot with smooth contour lines by fitting them with a 2D spline.
 circularGraph

A function plots an interactive circular graph to illustrate connections in a network in MATLAB.
 boundedline.m

A toolbox plots one or more lines with a shaded boundary (can represent error, confidence intervals, etc).
Figure and Subplot Utilities
 Distribute figures

A function distributes figures on different parts of the screen(s). Supports secondary monitor(s).
 Automatically arrange figure windows

A helper function automatically arranges/aligns and fits figures within a monitor screen.
 Panel

A package provides an alternative to MATLAB’s “subplot”, providing easier control over layout (particularly, easy elimination of whitespace).
 UISplitPane  Split a container (figure/frame/uipanel) into two resizable subcontainers

A package splits a container (figure/frame/uipanel) into two resizable subcontainers, like Java’s JSplitPane.
 GUI to assist with combining/pulling out figures and subplots

A GUI assists with generating new figures using data in existent figures.
 Useful Figure Management Utilities

A package of functions allows figures cascading, circulating, and filling the screen by managing the positioning of a bunch of onscreen figure windows in MATLAB.
 tightfig(hfig)

A function encloses all axes in the figure without excess space around them.
 tight_subplot(Nh, Nw, gap, marg_h, marg_w)

A function adjusts the spacing between the axes as well as the margins around the axes.
 Clone Figure

A function allows you to copy a figure to another figure.
 gridSubplot

A function allows you to build a figure with subplots given by a vector of figure objects.
 OverlayTable

A toolbox allows you to create table overlays for figures which include fulltext formatting and support for symbols.
Axis Control and Callbacks
 Fancy DualGraphs

A toolbox allows you to create a double axis to use with MATLAB plotting tools, and automatically draw markers.
 addaxis

A toolbox allows you to add multiple yaxes to plots, and make plots to be zoomable.
 plotxx.m

A function creates a graph with xaxes on both the top and bottom.
 plotyyy

A function creates a graph with three yaxes.
 Axis XX

A toolbox adds multiple X or Y axes to plots, rescale data, use any function, add data tips, zoom, flexible.
 samexaxis (nice subplots with same x axis)

A helper function to clean up subplots that have common xaxises.
 Break X Axis

A function allows split the xaxis into 2 disjoint regions in order to hide an uninteresting portion of a figure.
Labels and Annotations
 Axis_Prunelabels – clean up redundant axis labels

A function minimizes redundant axis labels in a grid of subplots.
 XYrotalabel  rotate Xaxis and Yaxis labels

A package gives simple control over label rotation with higher stability.
 Curly brace annotation

A function to draw curly brace on the current figure.
 REFLINEXYZ

A function plots reference lines from the 3D points (X, Y, Z) to the three cartesian planes (YZ, XZ, & XY planes).
 Format Tick Labels

A function replaces axes tick labels with formatted text objects that can include both Tex and LaTex interpreted strings.
 Format Tick Labels (Extended v2)

A function replaces axes tick labels with formatted text objects that can include both Tex and LaTex interpreted strings.
 textbp: text with legendstyle “best” placement

A function automatically locates text annotation to minimize figure obscuration.
 Add a title to a legend

A function adds a title to a legend.
 AddMultipleLegends

A function adds multiple legends to a single figure/axes.
 legendGrid

A function displays legend in a grid mode.
 legappend

A function adds new entries to a legend.
 simonhenin/columnlegend

A function creates a legend with a specified number of columns.
Remark: As of MATLAB 2018a, legend() now supports columns, so this function will no longer be maintained.
Colors and Styling
 Make Pretty (Publishable) Graphs

A function allows easily Create Publishable Ready Figures. Change Font Size, Line Width, and Background Color. Makes all Axis Labels the same Precision.
 PlotPub  Publication Quality Graphs in MATLAB

A free and opensource MATLAB library for creating beautiful, publicationquality graphs from instantly generated MATLAB figures or saved MATLAB fig files.
 sciencestagram

A function makes your plots look somewhat like they came from the dustiest section of the engineering library.
 figFriends_Tool_EN.zip

A package allows you to prepare figures with amplificated parts or another figure for scientific writing.
 gridcolor

A function changes the color of gridlines to a color different from the label and box color, which is currently not implemented in MATLAB.
 Perceptually improved colormaps

A tool returns perceptually balanced colormaps.
Interactive Control and Callbacks
 draggable

A function allows graphical objects to be dragged in a figure.
 dualcursor

A utility adds dual vertical cursors to a plot.
 Onfigure magnifier

A utility provides a powerful zooming tool specially designed for the documentation of original and zoomed 2D graphics of images on the same plot.
 TextZoomable(x,y,varargin)

A function adds texts that zoom as you zoom your plot, rather than staying at a fixed font size.
 Fine Tuning Figure Toolbar

A function adds a toolbar to fix axis position so as to remove annoying blank margins. Also, set precise figure size.
 MenuBar

A function allows the user to create menus anywhere in a figure.
 clickableLegend  Interactive highlighting of data in figures

A function creates a legend with clickable strings that let you hide and show objects in a plot.
 Draggable data tips

A utility enables the user to interactively drag any newlycreated datatip, anywhere in the MATLAB figure.
 linecut

A function allows you to interact a 3D plot with a crosshair and dynamically view X and Y linecuts of surf or image data.
Remark: This function does not work if the figure is being held on status.
 3D image rotation using sliders

A GUI represents an image and rotate this image about the three axes in threedimensional space using sliders.
 Volumetric Data Explorer

An app provides an interactive environment to explore four and fivedimensional data using some of MATLAB’s abilities for volumetric visualization and animation.
Animation Maker
 Animated GIF

An example illustrates how to capture a series of screenshots, and saves the animation as a GIF image file.
GUI Components and Utilities
 akZoom

A package allows direct zooming and panning with the mouse in 2D plots. Supports plotyy, loglog, subplot, etc.
 Copy Paste

A package allows a simple Cut, Copy, Paste context menu for edit boxes in GUI.
 GUI Layout Toolbox“GUI Layout Toolbox”

A toolbox provides tools to create sophisticated MATLAB graphical user interfaces that resize gracefully.
 Easy programatic GUI Layout

A function creates a GUI with the automatic placement of objects, which allows you to create panels, editboxes, text, listboxes, pushbuttons and more, without having to calculate its position.
 Multiple Tab GUI

An example illustrates how to create a figure with multiple Tabs.
 inputsdlg: Enhanced Input Dialog Box (v2.1.2)

A function creates an enhanced version of the standard INPUTDLG function with many additional features.
 Image File Get/Put Dialog Boxes

A package allows you to easily create open and save image file dialog boxes.
 IMAGEVIEWER

A GUI for viewing and interactively exploring image files.
 UIGETVARIABLES: Dialog to pass variables from workspace into GUI

A package creates a dialog box for selecting variables from the base workspace.
Learn more:
Statistics
 MATLAB Tools for Scientist

A toolbox for data analysis and visualization using an example of doseresponse fitting.
 Calculate number of bins for histogram

A toolbox allows you to calculate the ideal number of bins for a histogram, and plots the data with MATLAB’s
HIST
function.  FBD  “Find the Best Distribution” tool

A GUI allows you to find the best distribution that fits your data.
Curve and Surface Fitting
 EzyFit 2.44

A toolbox to perform simple curve fitting of onedimensional data using arbitrary (nonlinear) fitting functions.
 Fitting quadratic curves and surfaces

A toolbox provides a fairly comprehensive toolset of estimating quadratic curves and surfaces in an errorsinvariables context, with and without constraints.
 Surface Fitting using gridfit

A function models a surface from data in the form of z(x,y) from scattered or semiscattered data
Science and Engineering
 MathExplorer: Learning Maths using MuPAD for Engineering Students

A set of MuPAD notebooks that allow engineering students to visualize and experiment with maths.
 degrees and radians

Two helper functions, one converts degrees to radians, the other rads to deg.
 Simple Units and Dimensions for MATLAB

A function provides an efficient, easy to use, method of incorporating realworld units.
 unit(varargin)

A function converts between different units, and checks that their dimensions are consistent.
 Units and Dimensions Suite for MATLAB

A complete suite for using realworld units in MATLAB.
 Unit Converters

Intuitive functions for conversion of acceleration, angle, area, computing, force, frequency, energy, length, mass, power, pressure, speed, temperature, time, or volume.
 Velocity Conversion Toolbox

A toolbox converts velocities between mph, m/s,km/h, kts, ft/s.
 Robotics

A toolbox draws 16 robots that the user select.
Debugging
 profile_history  display graphical profiling timeline data

A GUI to analyze the latest profiling session and displays the functioncall timings and durations in a graphical timeline.
 tracer4m

A toolbox traces calls to methods and functions.
 plot_subroutines

A package plots the subroutines in a function and their dependencies on each other.
 intent.m

A toolbox allows you to create a plot of relationships between Mfiles in the current directory, as inferred by the names of input and output arguments.
 functor

A package allows you to generate and visualize a mapping between functions and the composition of function handles.
 Automatic Documentation MATLAB source codes

A toolbox allows you to generate m2html documentation with Graphviz on projects written in MATLAB.
Keep on reading: