My MATLAB Package and Toolbox Picks

My MATLAB Package and Toolbox Picks My MATLAB Package and Toolbox Picks

Table of Contents

Cross-Product 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


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 M-Files 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]( “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.


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


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:


MATLAB: Variables and Data Type Operations


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.


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


A toolbox enables simple, readable, and powerful for-loops 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


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


A function finds the overlapping element of 2 cell strings with 10-20 times faster than INTERSECT/ISMEMBER/SETDIFF and UNION.


A function finds indices of matching elements between two arrays/matrices

M-File 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.


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.


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


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.



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.


A function copies the contents of 2-D matrix A to the system clipboard.

num2clip: copy numerical arrays to clipboard

A function copies a numerical array to the clipboard as a tab-separated string ready for pasting.


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.


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


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

File Systems


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


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

Natural-Order 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


Advanced Plot Functions


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.


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 2-D spline.


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


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.


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 sub-containers

A package splits a container (figure/frame/uipanel) into two resizable sub-containers, 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 on-screen figure windows in MATLAB.


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.


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


A toolbox allows you to create table overlays for figures which include full-text 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.


A toolbox allows you to add multiple y-axes to plots, and make plots to be zoomable.


A function creates a graph with x-axes on both the top and bottom.


A function creates a graph with three y-axes.

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 x-axises.

Break X Axis

A function allows split the x-axis 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 X-axis and Y-axis 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.


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 legend-style “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.


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


A function displays legend in a grid mode.


A function adds new entries to a legend.


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 open-source MATLAB library for creating beautiful, publication-quality graphs from instantly generated MATLAB figures or saved MATLAB fig files.


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

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


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


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


A utility adds dual vertical cursors to a plot.

On-figure 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.


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.


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 newly-created data-tip, anywhere in the MATLAB figure.


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 three-dimensional space using sliders.

Volumetric Data Explorer

An app provides an interactive environment to explore four and five-dimensional 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


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.


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:


MATLAB Tools for Scientist

A toolbox for data analysis and visualization using an example of dose-response 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 one-dimensional data using arbitrary (non-linear) fitting functions.

Fitting quadratic curves and surfaces

A toolbox provides a fairly comprehensive toolset of estimating quadratic curves and surfaces in an errors-in-variables 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 semi-scattered 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 real-world units.


A function converts between different units, and checks that their dimensions are consistent.

Units and Dimensions Suite for MATLAB

A complete suite for using real-world 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.


A toolbox draws 16 robots that the user select.


profile_history - display graphical profiling timeline data

A GUI to analyze the latest profiling session and displays the function-call timings and durations in a graphical timeline.


A toolbox traces calls to methods and functions.


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


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


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:

Chris F. Author of this blog, M.Phil.
Loading Disqus Comments...
Please enable JavaScript to view the comments powered by Disqus.