Awesome MATLAB
A curated list of awesome MATLAB toolboxes, applications, software and resources. Inspired by awesome-R.
3rd Party Commercial Toolboxes
High quality commercial toolboxes from organisations other than Mathworks
- Multiprecision Toolbox for MATLAB - The Multiprecision Computing Toolbox is the MATLAB extension for computing with arbitrary precision. The toolbox equips MATLAB with a new multiple precision floating-point numeric type and extensive set of mathematical functions that are capable of computing with arbitrary precision.
- NAG Toolbox for MATLAB - Over 1700 functions across numerous areas of numerical mathematics. Developed by The Numerical Algorithms Group (NAG).
Cool
Fun projects that make you say 'Cool!'
- Engima - MATLAB version of the Enigma machine
Database Management
Toolboxes for managing data
- Database toolbox - Official database toolbox from Mathworks
- go-redis - Free Redis Mex client for Matlab
- mex-sqlite3 - Free Sqlite3 Mex client for Matlab
Games
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.
Hardware
- 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.
Image Processing and Computer Vision
- 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. Many pre-trained CNNs for image classification, segmentation, face recognition, and text detection are available.
- Piotr's Image and Video Toolbox - This free toolbox is meant to facilitate the manipulation of images and video in Matlab. Its purpose is to complement, not replace, Matlab's Image Processing Toolbox, and in fact it requires that the Matlab Image Toolbox be installed.
- 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.
Interfacing with other languages
- C/C++ mex routines - C/C++ MEX file lets you 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 Python.
- Python - How to call Python functions from within MATLAB.
Learning MATLAB
- Software Carpentry lessons in MATLAB - Teaching basic lab skills for research computing.
- YAGTOM: Yet Another Guide TO Matlab - This MATLAB® tutorial starts from the basics and builds up to advanced concepts such as object-oriented programming.
Making Figures
Third-party tools to produce publication quality figures.
- export_fig - produces better vector/bitmap graphics than standalone MATLAB®.
- matlab2tikz - exports MATLAB® figures to TikZ code for seamless inclusion in LaTeX documents.
- 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.
MATLAB-like environments
- 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.
- FreeMat - FreeMat is an open source MATLAB interpreter for a subset of the MATLAB language.
- MathScript - MathScript is an interpreter for MATLAB® code for the LabView programming language.
Miscellaneous Free Toolboxes
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 that have been used by the authors and collaborators to implement a variety of algorithms related to wavelet analysis.
- emgr - Empirical gramian framework for model reduction and system identification.
- yael - Yael is a library implementing computationally intensive functions used in large scale image retrieval, such as neighbor search, clustering and inverted files
Resources
Where to discover new MATLAB resources.
Websites
- MATLAB File Exchange - File Exchange lets you find and share custom applications, classes, code examples, drivers, functions, Simulink models, scripts, and videos
- MATLAB on Stack Overflow - Stack Overflow is a community of 4.7 million programmers, just like you, helping each other
- 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.
Blogs
- 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.
- 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.
- Loren on the art of MATLAB - Loren Shure works on design of the MATLAB language at 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
Books
- Accelerating MATLAB Performance: 1001 tips to speed up MATLAB programs - A superb guide to making MATLAB code faster.
- Undocumented Secrets of MATLAB-Java Programming - A great guide on MATLAB® and its Java interface (e.g. for GUIs or interaction with JVM software).
- The Elements of MATLAB Style - Coding guidelines for the MATLAB language.
Reference Cards
- MATLAB Quick Reference - Eric Peasley, Department of Engineering Science, University of Oxford
MOOCs
Massive open online courses.
- Introduction to Programming with MATLAB - Vanderbilt University MOOC that teaches basic programming concepts using MATLAB. You get a free time-limited license to use MATLAB with this course.
- Linear Algebra: Foundations to Frontiers - Hands-on introduction to Linear Algebra using MATLAB.
Tips and Tricks
- 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
Contributing
Your contributions are always welcome!
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License - CC BY-NC-SA 4.0