What's New in MATLAB

New tools for preprocessing and analyzing data, writing scripts and algorithms, building apps, and team-based software development.

And by the way, MATLAB is faster than ever. Take a closer look.

Live Editor

Use the MATLAB Live Editor to create MATLAB scripts and functions that combine code, output, and formatted text in an executable notebook.

NEW Live Editor Controls: Create dynamic controls in live scripts by linking variables to drop-down items and slider values (R2021a)

NEW Live Editor Fonts: Change the name, style, size, and color of fonts programmatically using settings (R2021a)

NEW Live Editor Bookmarks: Navigate quickly between lines (R2021a)

NEW Live Editor Animation Playback Controls: Interactive interface to control animations (R2021a)

Live Editor on iOS: Create, edit, and run live scripts in MATLAB Mobile on iPhone and iPad (R2020b)

Live Editor: Use a live script hyperlink to open another live script (R2020b)

Exporting to Standard Formats: Save live scripts and functions individually and in batch to PDF, Microsoft Word, HTML, and LaTeX (R2019a, R2020b)

Live Tasks: Use Live Editor Tasks to explore parameters, see results, and automatically generate code (R2019b, R2020a)

Hiding Code: Hide code when sharing and exporting live scripts (R2019a)

App Building

App Designer lets you create professional apps without having to be a professional software developer.

NEW uihyperlink Function: Add and configure clickable links in apps and on the App Designer canvas (R2021a)

NEW uitree Function: Add and configure check box trees in apps and on the App Designer canvas (R2021a)

NEW scroll Function: Scroll to a location within a table UI component programmatically (R2021a)

NEW App Designer: Zoom and pan in the Design View canvas; zoom, customize split-screen layouts, and control color and tab settings in the Code View editor (R2021a)

Icon Property: Specify custom icons for UI figure windows and toolbar push and toggle tools (R2020b)

Comparison Tool: Diff and merge App Designer apps (R2020b)

Custom UI Components: Create your own class to make composite UI components that encapsulate algorithms, as well as graphics and UI objects (R2020b)

exportapp and getframe Functions: Capture and save an image of an app (R2020b)

uicontextmenu Function: Add and configure context menus in App Designer and uifigure-based apps (R2020a)

uitoolbar Function: Add custom toolbars in App Designer and uifigure-based apps (R2020a, R2020b)

uihtml Function: Add HTML, JavaScript, or CSS content to apps (R2019b)

Data Import and Analysis

Access, organize, clean, and analyze data from a variety of sources.

NEW XML File I/O: Read and write XML files directly into tables, timetables and structs; create, transform, and query XML files using the MATLAB API for XML Processing (R2020b, R2021a)

NEW Remote Data I/O: Support for reading and writing remotely stored files using low-level file IO as well as through readtable, writetable, save, load and other high-level functions (R2019b, R2020b, R2021a)

NEW ts2timetable Function: Convert timeseries objects to timetables (R2021a)

Optimize Live Editor Task: Interactively create and solve optimization problems (R2020b)

Live Editor Tasks: Interactively preprocess data (R2019b) and manipulate tables and timetables (R2020a) with tasks that automatically generate MATLAB code

Grouping Workflows: Perform group-based operations using grouptransform (R2018b), groupcounts (R2019a), and groupfilter (R2019b)

Datatype I/O: Use dedicated functions for reading and writing matrices, cell arrays, structs and timetables (R2019a, R2020b)

Parquet File Support: Read and write single or large collections of Parquet files (R2019a)

Data Visualization

Visualize your data with new plotting functions and customization capabilities.

NEW Create Plot Live Editor Task: Add plots to live scripts without writing any code (R2021a)

NEW bubblecloud Function: Visualize part-to-whole relationships (R2021a)

bubblechart, bubblechart3, and polarbubblechart Functions: Create bubble charts in 2-D, 3-D, and polar coordinates (R2020b)

swarmchart Function: Visualize distributions of discrete data (R2020b)

Titles, Subtitles, and Axis Labels: Add subtitles to plots, and align titles and axis labels with the plot box (R2020b)

boxchart Function: Create box plots to visualize grouped numeric data (R2020a)

exportgraphics and copygraphics Functions: Save and copy graphics with improved support for publishing workflows (R2020a)

tiledlayout Function: Position, nest, and change the grid size of layouts (R2020a)

Chart Container Class: Develop charts that display a tiling of Cartesian, polar, or geographic plot (R2020a)

Big Data

Expand your analysis to big data without making big changes.

NEW Datastores: Read all data from a datastore using parallel processing (R2021a)

ArrayDatastore Object: Create datastores from in-memory data (R2020b)

Datastore Write: Write large collections of data in datastores out to disk for data engineering and file-based workflows (R2020a)

Customize Tall Arrays: Author custom algorithms to operate on tall arrays in chunks or sliding windows (R2018b, R2019a)

Functions for Tall Arrays: Operate on tall arrays with more functions, including innerjoin, outerjoin, xcorr, svd, and wordcloud (R2018b, R2019a, R2019b)

Custom Datastore: Read from Hadoop-based databases using the custom datastore framework (R2019a)

FileDatastore Object: Read large custom files by importing the file in smaller portions (R2019a)

Datastores: Combine and transform datastores (R2019a)

Language and Programming

Use new data types and language constructs for writing faster, clearer, and more maintainable code. 

NEW name=value syntax: Use name=value syntax for passing name-value arguments (R2021a)

NEW Class Diagram Viewer: Create graphical class diagrams to explore class details and share designs (R2021a)

pattern Object: Create patterns for text searching in strings (R2020b)

File Encoding: Improved support for non-ASCII character sets and cross-platform compatibility with default UTF-8 encoding for MATLAB files (R2020a)

Function Input Argument Validation: Declare function input arguments to simplify input error checking (R2019b, R2020b)

Performance

MATLAB runs your code over twice as fast as it did just six years ago. And there’s no need to change a single line of code.

NEW Sparse Matrix Multiplication: Improved performance multiplying large sparse matrices (R2021a)

NEW Sparse Linear Systems: Improved performance solving sparse linear systems A*X = B with multicolumn B (R2021a)

spdiags Function: Improved performance constructing sparse banded matrices (R2020b)

uitree Function: Improved performance when creating many nodes in a tree (R2020b)

uilistbox Function: Improved performance when setting multiple items in a list box (R2020b)

Profiler: Investigate and improve the execution performance of your code visually using flame graphs (R2020a)

Live Editor: Improved performance in loops and animated plots (R2020a)

Software Development

Software development tools help you manage and test your code, integrate with other software systems, and deploy your applications to the cloud.

NEW Projects: List all referenced projects and impacted project files (R2021a)

NEW C++ Interface: Support for C++ language features including std::vector values and void* values (R2021a)

Python: Start and stop a Python interpreter from a MATLAB session (R2020b)

Code Compatibility Report: Code Compatibility Report includes warnings about unsupported functionality (R2020b)

Unit Testing Framework: Run tests in parallel on clusters and clouds (R2020b)

Out-of-Process Python Execution: Execute Python functions out-of-process to avoid library conflicts (R2019b)

Projects: Organize your work, automate tasks and processes, and collaborate with your team (R2019a)

C++ Interface: Call C++ library functions from MATLAB (R2019a)

Jenkins Plugin for MATLAB: Run MATLAB tests and generate test reports in formats such as JUnit, TAP, and Cobertura code coverage reports

New Reference Architectures: Deploy and run MATLAB on Amazon Web Services (AWS) and Microsoft Azure (R2018b)

Controlling Hardware

Control popular microcontrollers like Arduino and Raspberry Pi, acquire images from webcams, and acquire sensor and image data from drones.

NEW Arduino: Use Nano 33 BLE Sense board (R2021a)

NEW Sensor Support: Use LSM and MPU sensors with Raspberry Pi unified server (R2021a)

NEW Raspberry Pi: Deploy with unified server (R2021a)

NEW Arduino: Arduino Engineering Kit examples included in Arduino support package (R2021a)

Raspberry Pi: Deploy MATLAB function on hardware from MATLAB Online (R2020b)

Acquire Webcam Image Live Editor Task: Interactively capture webcam images (R2020b)

Sensor Support: Use BNO055 Sensor with Sensor Fusion and Tracking Toolbox, and Navigation Toolbox to estimate orientation (R2020b)

Arduino: Use IDE version 1.8.13 (R2021a)

Track live events with webcam live tasks