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.

Environment

NEW Editor Python Support: View and edit Python files with syntax highlighting, auto-indenting, and delimiter matching (R2022a)

NEW Themes in MATLAB Online: Change the colors of the MATLAB desktop by selecting a dark or light theme (R2022a)

NEW Live Editor Colors: Change the text and background colors of live scripts and functions (R2022a)

NEW Live Editor Export: Export live scripts and functions programmatically using the export function (R2022a)

NEW Live Editor Tasks: Develop your own Live Editor tasks for use in live scripts (R2022a)

Editor: Code refactoring and block editing, improved code suggestions, automatic code completion, and inline debugging controls (R2021b)

Live Editor Animations: Use interactive interface to control animations (R2021a) and export them to movies or animated GIFs (R2021b)

Live Editor Controls: Create dynamic controls by linking variables to values of live editor controls (R2021a); set default values (R2021b)

Language and Programming

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

NEW pcode Function: Create P-code files with enhanced obfuscation(R2022a)

NEW backgroundPool: Execute a function asynchronously without blocking the command prompt from MATLAB (R2021b); query queued and running futures and status of background pool (R2022a)

Modular Indexing: Customize class indexing operations individually using new superclasses (R2021b)

name=value syntax: Use name=value syntax for any function using name-value arguments (R2021a)

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

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

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

Code shows functions and arguments to search for an image of a ball.

Function argument validation example using arguments block.

Data Import and Analysis

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

NEW Data Cleaner App: Interactively identify and clean messy timetable data (R2022a)

NEW Data Preprocessing Functions: Append transformed variables to input data (R2022a)

NEW Opus Files: Work with Opus (.opus) audio files (R2022a)

File I/O: Read and write XML, HTML, and Microsoft Word files directly into table, timetable and structs (R2021b, R2021a, R2020b)

Data Preprocessing Live Editor Tasks: Add simple point-and-click interfaces to a live script to perform a specific set of operations, including removing missing values and outliers, smoothing and normalizing, and grouping and joining (R2019b-R021b)

trenddecomp Function: Find long-term and seasonal trends in data (R2021b)

timeseries2timetable Function: Convert timeseries objects to timetables (R2021b)

HDF5: Support for HDF5 version 1.10, including Single-Writer/Multiple-Reader (SWMR), Virtual Dataset (VDS), and Metadata Cache Fine-Tuning (R2021b)

NetCDF: Support for NetCDF version 4.7.4, including reading and writing NC_STRING data (R2021b); enable byte-range reading of remote datasets (R2022a)

Data preprocessing using the Clean Outlier Data Live Editor task.

Big Data

Expand your analysis to big data without making big changes.

NEW Parquet Files: Conditional filtering (Predicate Pushdown) with rowfilter to limit volume of data imported; support for reading and writing of row groups and nested data structures (R2022a)

Datastore Performance: Specify FileSet object in datastores for increased performance (R2021b)

Datastores: Read all data from a datastore using parallel processing (R2021a); combine and transform datastores (R2019a)

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

Tall Arrays: Operate on tall arrays with more functions, including:

  • groupfilter and matches (2020a)
  • setdiff, xcorr, and outerjoin (2019b)
  • groupcounts, intersect, and svd (2019a)

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)

Color-coded table shows airline flights by month and year between 1987 and 2008.

Tall arrays operate on data that has more rows than fit in memory.

Mathematics

Math functions provide a range of numerical computation methods for analyzing data, developing algorithms, and creating models.

NEW tensorprod Function: Calculate tensor products between two arrays (R2022a)

NEW N-D Array Math: Solve linear equations (pagemldivide, pagemrdivide), calculate matrix inverses (pageinv), and perform singular value decomposition (pagesvd) on pages of N-D arrays (R2022a, R2021b)

ode78 and ode89 Functions: High-order Runge-Kutta solvers for ordinary differential equations (R021b)

Graph Algorithms: Compute all paths, all cycles, and cycle basis (R2021a)

Optimize Live Editor Task: Solve optimization problems interactively (R2020b)

Optimization window shows options to minimize a function with or without constraints.

Use the Optimize Live Editor task to define and solve optimization problems interactively.

Data Visualization

Visualize your data with new plotting functions and customization capabilities.

NEW Plotting Table Data: Pass tables directly to plot, plot3, polarplot, and other line plotting functions (R2022a) and scatter plots, bubble charts, and swarm charts (R2021b)

NEW exportgraphics Function: Create animated GIF files (R2022a); capture and append graphics to existing PDFs (R2021b)

Create Plot Live Editor Task: Create plots interactively and generate code (R2021a); add visualizations to generated plots (R2021b)

New Charting Functions: Visualize part-to-whole relationships with bubblecloud (R2021a); create bubble charts in 2D, 3D, and polar coordinates with bubblechart, bubblechart3, and polarbubblechart (R2020b); visualize distributions of discrete data with swarmchart (R2020b)

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

tiledlayout Function: Create configurable layouts of plots in a figure (R2019b); position, nest, and change the grid size of layouts (R2020a)

App Building

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

NEW Live Editor Tasks: Develop your own Live Editor tasks for use in live scripts (R2022a)

NEW Custom UI Components: Interactively create custom UI components in App Designer (R2022a) or programmatically create your own class (R2020b) to make composite UI components that encapsulate algorithms, as well as graphics and UI objects

NEW Table UI Components: Interactively rearrange columns of table UI components (R2022a); scroll to a location within a table UI component programmatically using the scroll function (R2021a)

NEW Accessibility: Modify tab focus order of components in App Designer and give keyboard focus to UI components programmatically using the focus function (R2022a)

NEW Styles: Add icons in table cells and tree nodes (R2022a); create and add styles to nodes and levels in a tree UI component (R2021b); create and add styles for rows, columns, or cells in a table UI component (R2019b)

Run Code in the Background: Use parallel language (backgroundPool) to create more responsive apps (R2021b)

App Designer: Use tools and shortcuts from Live Editor in Code View (R2021b); zoom and pan in the Design View canvas (R2021a)

Comparison Tool: Find differences and merge App Designer apps (R2020b)

External Language Interfaces

MATLAB provides a flexible, two-way integration with other programming languages. This enables teams that use different programming languages to work together, spending more time developing products and less time recoding in another language.

NEW Python: Convert Python list and tuple types to MATLAB types (R2022a)

NEW Python: Use name=value syntax to pass keyword arguments to Python functions (R2022a)

pyrun and pyrunfile Functions: Run Python commands and scripts from MATLAB (R2021b)

Python: Support for complex multidimensional arrays (R2021b)

C++ Interface: Build a MATLAB interface to a C++ library from header files, source files, or library files (R2021a, R2020b)

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

Performance

MATLAB continues to get faster each release. And there is no need to change a single line of code.

NEW Classes: Improved performance for static methods, constant property access, and package functions in scripts (R2022a)

NEW Python Data Type Conversion: Improved performance when converting between Python and MATLAB data types in out-of-process mode (R2022a)

NEW MATLAB Engine API for Python: Improved performance with large multidimensional arrays in Python (R2022a)

NEW Table Indexing: Improved performance when assigning elements by subscripting with curly braces, dot notation, or multiple levels of indexing (R2022a, R2021b)

NEW fzero Function: Improved performance (R2022a)

qrinsert and qrdelete Functions: Improved performance modifying QR factorizations (R2021b)

Plots in Apps: Improved performance for creating plots in uifigure (R2021b)

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

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

Bar graph shows increased performance of MATLAB year over year.

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 Code Compatibility Analyzer App: Identify and address compatibility issues against current version of MATLAB (R2022a)

NEW Unit Testing Framework: Use the TestCase class template to create tests more quickly and accurately (R2021b); collect statement and function coverage metrics for your source code (R2022a); run tests in parallel on clusters and clouds (R2020b)

MATLAB Online: Collaborate using projects and Git in MATLAB Online (R2021b)

Projects: Organize your work, automate tasks and processes, and collaborate with your team (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

Current folder shows the Source Control option selected from a menu followed by Update from S V N in the next menu.

Use third-party source control tools such as SVN directly from MATLAB.

Controlling Hardware

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

NEW Hardware Manager App: Discover and connect to your hardware from MATLAB (R2022a)

NEW Arduino: Support for ESP32 MCU development boards (R2022a)

Arduino: Connect and Control boards using the Arduino Explorer app (R2021b); BLE connectivity for Arduino (R2021b)

Sensor Support: Read data from APDS9960 sensor connected to Arduino (R2021b)

Raspberry Pi: Support for CAN shields (R2021b)

Drones: Connect to multiple Ryze Tello Drones to control and read sensor data (2021b)

Arduino Explorer app screen open showing pin configuration and graph with plot pins.

Understand sensor measurements with the Arduino Explorer app.