A curated list of awesome MATLAB toolboxes, applications, software and resources. Inspired by awesome-R.
- Awesome MATLAB
- 3rd Party Commercial Toolboxes
- Artificial Intelligence and Machine Learning
- Computational Mechanics
- Cool
- Database Management
- Games
- Geospatial
- GPU Computing in MATLAB
- Hardware
- High Performance Computing in MATLAB
- Image Processing and Computer Vision
- Interfacing with other languages
- Interfacing with other programs
- Learning MATLAB
- Making Figures
- Miscellaneous Free Toolboxes
- MATLAB-like environments
- Model Reduction
- Optimization
- Parallel Computing in MATLAB
- Quantum Computing
- Statistics
- Using MATLAB in other environments
- Resources
- Contributing
High quality commercial toolboxes from organisations other than MathWorks
- Multiprecision Toolbox for MATLAB - This toolbox equips MATLAB with a new multiple precision floating-point numeric type and an extensive set of mathematical functions that are capable of computations with arbitrary precision.
- MOSEK Optimization Tools - The MOSEK tools provide access to the powerful MOSEK optimization solvers from inside the MATLAB environment either by a classical Toolobx or by the modern object-oriented API Fusion.
- FEATool Multiphysics - Finite Element FEM Simulation toolbox for Matlab and Octave featuring an easy to use GUI, integrated CAD, geometry, grid generation, solvers, and postprocessing functionality.
- AI Chat Playground - Free service from MathWorks. Chat with an AI about MATLAB and run code in the browser.
- AI Verification: Constrained Deep Learning - Constrained deep learning is an advanced approach to training deep neural networks by incorporating domain-specific constraints into the learning process.
- Deep Learning Toolbox - MATLAB's official deep learning toolbox from MathWorks
- Deep Learning Verification - Deep learning verification is a set of techniques for assessing the properties of deep neural networks. A free support package from MathWorks.
- Large Language Models (LLMs) with MATLAB Large Language Models (LLMs) with MATLAB lets you connect to large language model APIs using MATLAB®.
- MATLAB Deep Learning Model Hub - Discover the latest pretrained models for deep learning in MATLAB.
- MATLAB GPT - Discover MATLAB with the official MATLAB GPT by MathWorks.
- Reinforcement Learning Toolbox - MATLAB's official toolbox for Reinforcement Learning from MathWorks.
- SciML-and-Physics-Informed-Machine-Learning-Examples - This repository collates a number of examples demonstrating Scientific Machine Learning (SciML) and Physics Informed Machine Learning.
- Statistics and Machine Learning Toolbox - MATLAB's official traditional (i.e. not neural networks) machine learning toolbox from MathWorks
- GIBBON - An open-source (get the source here) MATLAB toolbox for computational (bio)mechanics, computational geometry, image segmentation, meshing, lattice structure creation, and finite element analysis (by linking with the open source package FEBio and the commercial package ABAQUS).
Fun projects that make you say 'Cool!'
- Engima - MATLAB version of the Enigma machine.
- Invisibility Cloak Using MATLAB and Simulink - This submission contains the implementation of an Invisibility Cloak using image thresholding and segmentation.
Toolboxes for managing data
- Database toolbox - Official database toolbox from The MathWorks.
- go-redis - Free Redis Mex client for MATLAB.
- mex-sqlite3 - Free Sqlite3 Mex client for MATLAB.
- dotenv for MATLAB - Manage database configuration environment variables.
Fully playable games developed in MATLAB.
- 2048 - 2048 is a game originally created by Gabriele Cirulli. This is a MATLAB implementation of the game.
- Flappy bird - As one of the most popular games on app stores before being taken down, Flappy Bird does not need any further introduction. Now, it has come back alive, on MATLAB.
- Mappling Toolbox - The official Mapping Toolbox from MathWorks.
- TopoToolbox - TopoToolbox is a MATLAB program for the analysis of digital elevation models (DEMs). It's free and open source.
- m_map - A mapping package for Matlab.
- Deep Learning with MATLAB on Multiple GPUs - MATLAB supports training a single deep neural network using multiple GPUs in parallel.
- GPU Section of the MATLAB Blog - Mike Croucher from MathWorks writes about GPU Programming in MATLAB
- GPU Computing using Parallel Computing Toolbox - The relevant section of the documentation for getting started with GPU computing using NVIDIA GPUs in MATLAB.
- GPU Coder - Generates CUDA code from MATLAB code.
- MATLAB on the NVIDIA GPU Cloud - Running MATLAB on the NVIDIA GPU Cloud.
- NVIDIA Jetson Support from MATLAB Coder - MATLAB Coder support package for NVIDIA® Jetson™ and NVIDIA DRIVE™ platforms automates the deployment of MATLAB algorithm or Simulink design on embedded NVIDIA GPUs such as the Jetson platform.
- Arduino Support package - MATLAB Support Package for Arduino Hardware
- CPU Info - Read various bits of information about the CPU and operating system.
- MATLAB Mobile - MATLAB on Android and iOS mobile phones and tablets.
- Raspberry Pi Support from MATLAB - Acquire sensor and image data from your connected Raspberry Pi.
- Rasperry Pi IO Support for Octave - Control Rasperry Pi GPIO Port from Octave.
- Computer Vision System Toolbox - The official computer vision toolbox from MathWorks.
- Image Processing Toolbox - The official Image Processing Toolbox from MathWorks.
- MatConvNet - MatConvNet is a free MATLAB toolbox implementing Convolutional Neural Networks (CNNs) for computer vision applications. It is simple, efficient, and can run and learn state-of-the-art CNNs. It provides pre-trained CNNs for image classification, segmentation, face recognition, and text detection.
- VLFeat - The VLFeat free and open source library implements popular computer vision algorithms specializing in image understanding and local features extraction and matching. It is written in C for efficiency and compatibility, with interfaces in MATLAB for ease of use, and detailed documentation throughout.
- MexOpenCV - MATLAB MEX interface for OpenCV, i.e. one of the leading libraries for computer vision.
- Zoning Aggregated Hypercolumns for Keyword Spotting - An image descriptor, suitable for keyword spotting, that is computed as a function of Convolutional Neural Network intermediate layer responses.
- C/C++ mex routines - C/C++ MEX files allow to call C/C++ functions from within MATLAB.
- Fortran mex routines - Fortran MEX routines allow you to call Fortran code from within MATLAB.
- MATLAB Engine for Python - The MATLAB Engine for Python provides a Python package named
matlab
that enables you to call MATLAB functions from within Python. - MATLink - To run MATLAB code inside Mathematica / Wolfram Language notebooks.
- node-matlab - To run MATLAB code inside NodeJS.
- Python - How to call Python functions from within MATLAB.
- MATLAB QuickLook - QuickLook preview generator for MAT files. This shows the contents of your MAT files in Finder. The binary is only compatible with 64 bit OS X.
- MATLAB-git - A thin wrapper to call
git
from within a MATLAB console. - JSONlab - Toolbox to encode/decode JSON data files from within MATLAB and Octave.
- MATLAB Onramp - Start here if you've never used MATLAB before. 2 hour interactive intro from MathWorks. Free for all.
- AI-assisted MATLAB Programming with ChatGPT - A Coursera course showing how to use ChatGPT to help you program in MATLAB
- Software Carpentry lessons in MATLAB - Teaching basic lab skills for research computing.
- Control Tutorials for MATLAB and Simulink - This site contains quite a bit control theory, some practical applications and how to implement these in MATLAB and SimuLink.
- Rosetta Code (MATLAB category) - Rosetta Code is a community comparing algorithms in different languages.
- GNU Octave - GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It can run many MATLAB programs unmodified.
- Scilab - Scilab is free and open source software for numerical computation providing a powerful computing environment for engineering and scientific applications.
- MathScript - MathScript is an interpreter for MATLAB® code for the LabView programming language.
Third-party tools to produce publication quality figures.
- antijet - An alternative to the problematic "jet"-colormap.
- export_fig - produces better vector/bitmap graphics than standalone MATLAB®.
- gramm - GRAMmar of graphics for Matlab.
- hq-matlab-figs - Creating high-quality graphics in MATLAB for papers and presentations.
- matlab2tikz - exports MATLAB® figures to TikZ code for seamless inclusion in LaTeX documents.
- matplotlib colormaps - Perceptually uniform colormaps.
- plot2svg - exports MATLAB® figures to Scalable Vector Graphics format. This is particularly useful in older MATLAB® versions that don't support
print -dsvg
. - Plotly MATLAB Library - exports MATLAB® figures to the online plotting service plot.ly.
- saveFigure - exports MATLAB® figures to PDF, SVG, EPS and PNG with improved support for transparancy.
- wgPlot - A better version of gplot.
- xkcdify - xkcd-style plots.
High quality free toolboxes in subject areas that don't yet have their own section
- Chebfun - Chebfun is an open-source package for computing with functions to about 15-digit accuracy.
- IFISS - IFISS is a graphical package for the interactive numerical study of incompressible flow problems which can be run under MATLAB or Octave.
- Wavelab - WaveLab is a collection of MATLAB functions related to wavelet analysis.
- MPITB - MPI Toolbox for Matlab (MPI Toolbox for Octave).
- Lightspeed - Microsoft Lightspeed Utilities Toolbox.
- bct - Brain Connectivity Toolbox.
- OpenCL Toolbox - OpenCL support for MATLAB.
- UQLab - The Framework for Uncertainty Quantification.
- Octave Forge - Extra packages for GNU Octave.
- Matrix Computation Toolbox - For constructing test matrices, computing matrix factorizations, visualizing matrices, and carrying out direct search optimization.
- GRANSO - GRadient-based Algorithm for Non-Smooth Optimization.
- ROSTAPACK - RObust STAbility PACKage.
- MOCluGen - Multidimensional cluster generation in MATLAB/Octave.
- drtoolbox - Matlab Toolbox for Dimensionality Reduction.
- DMD Book - Dynamic Mode Decomposition Book Companion Code.
- emgr - EMpirical GRamian framework for model reduction of input-output systems.
- hapod - Hierarchical Approximate Proper Orthogonal Decomposition.
- MOR Toolbox - Model Reduction Toolbox for MATLAB (formerly: MORE - a MOdel REduction Toolbox).
- KerMor - Model order reduction for nonlinear dynamical systems and nonlinear approximation.
- morgen - Model Order Reduction for Gas and Energy Networks.
- MORLAB - Model Order Reduction Laboratory.
- MORPACK - Model Order Reduction PACKage.
- MESS - The Matrix Equations Sparse Solvers library, is the successor to the Lyapack Toolbox.
- MRedTool - A MATLAB toolbox for model reduction of multi-dimensional systems.
- Nonlinear Model Reduction Routines for MATLAB - Empirical balanced truncation toolbox.
- psssMOR - A parametric sparse state-space and Model Order Reduction toolbox.
- RBmatlab - A MATLAB library for model order reduction with Reduced Basis Methods.
- redBKIT - A MATLAB library for reduced-order modeling of parametrized PDEs.
- SiMpLIfy - Structured ModeL reduction.
- SLICOT - SLICOT Model and Controller Reduction Toolbox.
- SMORES - A Matlab tool for Simulation and Model Order Reduction of Electrical Systems.
- SOMDDPA - Second-Order Modally-Damped Dominant Pole Algorithm.
- sssMOR - sparse state space and Model Order Reduction toolbox.
- SUMO - SUrrogate MOdelling lab.
- Optimization Onramp - Free interactive course from MathWorks. Learn the basics of optimization in MATLAB.
- Global Optimization Toolbox - Offical toolbox from MathWorks. Includes algorithms such as Simulated Annealing, Particle Swarm Optimizaton and Genetic Algorithms.
- Manopt - Free toolboxes for optimization on manifolds and matrices.
- Optimization Toolbox - Official optimization Toolbox from MathWorks.
- Quadratic Unconstrained Binary Optimization (QUBO) - An optimization formulation that's available in MATLAB via the Quantum Computing Support package
- Parallel Computing Toolbox - Mathworks Toolbox. Provides support for various parallel programming paradigms to scale MATLAB to 1000s of CPU cores and GPUs. Also helps make maximum use of your laptop if that's the only hardware you have.
- MATLAB Support Package for Quantum Computing - MATLAB Support Package for Quantum Computing lets you build, simulate, and run quantum algorithms. You can use your own PC or real quantum hardware via the cloud.
- QCLAB MATLAB Toolbox - QCLAB is an object-oriented MATLAB toolbox for creating, representing and simulating quantum circuits.
- Strangeworks SDK - This allows users to submit jobs from MATLAB to a range of Quantum Hardware via the Strangeworks platform.
- FSDA Toolbox - FSDA (Flexible Statistics and Data Analysis) extends MATLAB and the Statistics Toolbox for the robust analysis of data sets affected by different sources of heterogeneity.
- Statistics and Machine Learning Toolbox - Statistics and Machine Learning Toolbox from MathWorks.
- Official MATLAB Kernel for Jupyter - Blog post describing how to install and use the official MATLAB Kernel for Jupyter
Where to discover new MATLAB resources.
- MATLAB File Exchange - File Exchange lets you find and share custom applications, classes, code examples, drivers, functions, Simulink models, scripts, and videos.
- Cody - A website with programming challenges that consist of writing MATLAB® code. A fun way to improve your skills.
- ThingSpeak - An internet of things (IoT) platform that allows to collect, analyze and act upon various data sources. You can enter your own MATLAB® code to process and plot your data.
- Octave-Online - An online Octave interpreter.
- Matlab FAQ on Wikia
- Programming Community Curated Resources For Learning Matlab
- Assorted .m-files - by H.P. Gavin.
- Cleve's Corner: Cleve Moler on Mathematics and Computing - Cleve Moler is the author of the first MATLAB, one of the founders of MathWorks, and is currently Chief Mathematician at the company.
- The MATLAB Blog - Mike Croucher, a Customer Success Engineer at MathWorks, writes about MATLAB.
- Developer Zone - Developing, testing, and integrating production grade software using MATLAB.
- Guy and Seth on Simulink - Guy Rouleau and Seth Popinchalk are Application Engineers for MathWorks.
- Steve on Image Processing - Steve Eddins has developed MATLAB and image processing capabilities for MathWorks since 1993.
- Undocumented MATLAB - Yair Altman blogs about the hidden underbelly of MATLAB®. This is the place to be for discovering new and awesome features.
- WalkingRandomly - The MATLAB tag of WalkingRandomly.
- xcorr: comp neuro - MATLAB relevant post of XCORR.
- Matlab Geeks - Matlab Blog, Tutorials and Expertise.
- Accelerating MATLAB Performance: 1001 tips to speed up MATLAB programs - A superb guide to making MATLAB code faster.
- Data-Driven Science and Engineering: Machine Learning, Dynamical Systems and Control - This textbook brings together machine learning, engineering mathematics, and mathematical physics to integrate modeling and control of dynamical systems with modern methods in data science.
- The Elements of MATLAB Style - Coding guidelines for the MATLAB language.
- MATLAB for Dummies - A good beginners book.
- MATLAB Guide - By Desmond and Nicholas Higham. One of the best books for learning MATLAB
- Undocumented Secrets of MATLAB-Java Programming - A great guide on MATLAB® and its Java interface (e.g. for GUIs or interaction with JVM software).
- An Introduction to MATLAB for Behavioral Researchers - Beginner book for those with no programming experience. Targeted to those in psychology/behavioural sciences and uses real experimental data in examples.
- MATLAB Quick Reference - by Eric Peasley, Department of Engineering Science, University of Oxford
- MATLAB on Facebook - Official Facebook page for MATLAB.
- MATLAB Reddit - MATLAB on Reddit.
- MATLAB on Stack Overflow - Stack Overflow is a community of 4.7 million programmers, just like you, helping each other.
- MATLAB on Twitter - Official MATLAB twitter account.
- Octave on Stack Overflow - Stack Overflow has an extensive back catalogue of many answered questions.
- Octave Reddit - Octave on Reddit.
Massive open online courses.
- Linear Algebra: Foundations to Frontiers - Hands-on introduction to Linear Algebra using MATLAB.
- Advanced Programming Techniques in MATLAB - Slides by Loren Shure.
- Guidelines for writing clean and fast code in MATLAB - A guide with best practices in MATLAB® programming to which anybody can contribute.
- Octave and MATLAB Snippets - Collection of code snippets.
- knkutils - MATLAB utility functions written by Kendrick Kay.
- Lanczos Algorithm for SVD - MATLAB Code
- Jie Chen's Software - Collection of companion codes (mostly MATLAB).
- SSP RK - Strong Stability Preserving Runge-Kutta Codes.
- BV78 - Shampine's Adaptive Block Vectorized Runge-Kutta 7-8.
- MATLAB Style Guidelines 2.0 - by R. Johnson.
- parrun.sh - MATLAB and OCTAVE Parallel Job Script.
- flamegraph - Flame graph visualization for Octave's profiler output.
- mlintall - Recursive
mlint
Your contributions are always welcome. Refer to the contribution guidelines if you'd like to make a Pull Request.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License - CC BY-NC-SA 4.0