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 Live Editor Controls: Add numeric spinners to increment and decrement variable values in live scripts (R2022b); create dynamic controls by linking variables to values of live editor controls (R2021a); and set default values (R2021b)

NEW Live Editor Tasks: Specify what code to run when control value changes (R2022b); develop your own Live Editor tasks for use in live scripts (R2022a)

NEW Themes in MATLAB Online: Change the colors of the MATLAB desktop to match your operating system color scheme (R2022b)

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

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

Live Editor Export: Export live scripts and functions programmatically using the export function (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)

Language and Programming

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

NEW dictionary Object: Map unique keys to values for fast lookup (R2022b)

NEW Code Analyzer App: Identify and explore issues in your codebase (R2022b)

NEW Output Argument Validation: Validate output arguments in functions and class methods (R2022b)

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

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

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

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)

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

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 data in timetables (R2022a) and tables (R2022b); view sparklines and summary statistics (R2022b)

NEW Data Analysis: New and updated functions for analyzing data, including trenddecomp, detrend, mape, rmse, and isuniform (R2022b, R2021b)

NEW Variables Editor in MATLAB Online: View sparklines and summary statistics for tabular data, navigate a variable with Find and Go To dialog boxes, interactively save logical indices of data selection, and replace tabular data with empty arrays (R2022b)

NEW Parallel Processing: Use low-level file I/O operations in thread-based environments (R2022b)

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

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)-> R2019b-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 (R2022b, 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) -> R2020a
  • setdiff, xcorr, and outerjoin (2019b) -> R2019b
  • groupcounts, intersect, and svd (2019a) -> 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 N-D Array Math: Calculate norms (pagenorm), solve linear equations (pagemldivide, pagemrdivide), calculate matrix inverses (pageinv), and perform singular value decomposition (pagesvd) on pages of N-D arrays (R2022b, R2022a, R2021b)

NEW Code Generation for Math Functions: Generate C code (using MATLAB Coder) for multiple functions, including ode15s, shortestpath, and nearest (R2022b), integral and interpft (R2022a), and digraph, graph, hess, ode78, and ode89 (R2021b)

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

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

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 stem, stairstep, and geographic plots (R2022b), plot, plot3, polarplot, and other line plotting functions (R2022a) and scatter plots, bubble charts, and swarm charts (R2021b)

NEW Figure Code in MATLAB Online: Generate code when you edit graphics object properties (R2022b)

NEW Plot Options in MATLAB Online: Customize figure creation, data linking, and labeling (R2022b)

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 App Performance: Faster launch time and improved responsiveness of graphics interactions (R2022b)

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

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

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)

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

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 .NET Engine API: Call MATLAB from .NET applications (R2022b)

NEW .NET Interface: Support for .NET 5 and .NET Core (R2022b)

NEW Python Engine: Pass NumPy arrays directly to MATLAB functions (R2022b)

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

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)

Performance

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

NEW prctile, quantile, and iqr Functions: Improved performance with small input data (R2022b)

NEW mldivide and pagemldivide Functions: Improved performance with small matrices (R2022b)

NEW conv, conv2, and convn Functions: Improved performance when convolving two vectors, matrices, and arrays (R2022b)

NEW App Performance: Faster launch time and improved responsiveness of graphics interactions (R2022b); improved performance for creating plots in uifigure (R2021b)

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

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

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

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

fzero Function: Improved performance (R2022a)

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 Build Tool: Create and run software-build tasks (R2022b)

NEW Dependency Analyzer: Find required add-ons (R2021a), identify files that contain syntax errors (R2022b), and save dependency graphs as images (R2022a)

NEW MATLAB Online: Collaborate using projects and Git in MATLAB Online (R2021b), including managing Git branches and repositories (R2022b)

Code Compatibility Analyzer App: Identify and address compatibility issues against current version of MATLAB (R2022a)

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)

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 Arduino: Support for ESP32 MCU development boards (R2022a), including support for servo and rotary encoder peripherals (R2022b)

NEW Arduino: Connect and control boards using the Arduino Explorer app (R2021b), including managing Arduino libraries and interfacing with I2C, SPI, and Serial peripherals (R2022b); BLE connectivity for Arduino (R2021b)

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

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.