My MATLAB Package and Toolbox Picks
Table of Contents
- Cross-Product Toolboxes
- Parallel Processing
- Shorthands
- File Systems
- Graphics
- GUI Components and Utilities
- Statistics
- Curve and Surface Fitting
- Science and Engineering
- Debugging
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
- MATLAB R-link
-
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](https://www.mathworks.com/matlabcentral/fileexchange/42202-plotly-%7C-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.
- GPUBench
-
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.
- 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.
- For-Each
-
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
- 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 10-20 times faster than
INTERSECT
/ISMEMBER
/SETDIFF
andUNION
. - FINDIND
-
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.
- 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 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.
- 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). - 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
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 2-D 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 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.
- 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 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.
- addaxis
-
A toolbox allows you to add multiple y-axes to plots, and make plots to be zoomable.
- plotxx.m
-
A function creates a graph with x-axes on both the top and bottom.
- plotyyy
-
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.
- 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 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.
- 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 open-source MATLAB library for creating beautiful, publication-quality 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.
- 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.
- 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 newly-created data-tip, 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 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
- 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 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.
- 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 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.
- 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 function-call 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 M-files 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: