My MATLAB Package and Toolbox Picks
Table of Contents
- Cross-Product Toolboxes
- Parallel Processing
- File Systems
- GUI Components and Utilities
- Curve and Surface Fitting
- Science and Engineering
- 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.
- 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.
- Techniques to Improve Performance - MathWorks
- Profile Your Code to Improve Performance - MathWorks
- Measure the Performance of Your Code - MathWorks
- Estimate elapsed CPU time.
- Start stopwatch timer and read elapsed time from stopwatch, respectively.
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
- 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.
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
A function finds indices of matching elements between two arrays/matrices
- 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.
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.
- 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.
- 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
- 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: