MATLAB is a high-level language and interactive environment that enables you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++, and Fortran.
Desktop
- Live Editor: Pan, zoom, and rotate axes in output figures
- Live Editor: Create and edit equations interactively using the equation editor
- Live Editor: Create new sections and format text quickly using autoformatting
- Command Window: View updated display for arrays, including headers indicating class, size, and shape
- Product Trials: Download trials for MathWorks products using Add-On Explorer
- Toolbox Packaging: Include live script examples, generate info.xml and helptoc.xml templates for custom documentation, and modify Java class path on installation
Language and Programming
- Functions in Scripts: Define local functions in scripts for improved code reuse and readability
- string Array: Manipulate, compare, and store text data efficiently
- timetable Data Container: Manage time-stamped tabular data with time-based indexing and synchronization
- timerange Function: Access all data in a specified date and time range in a timetable
- vartype Function: Access all variables of a specified datatype in a table
- table Data Container: Reference all variables in a table with compatible types using the Variables property
- dir Function: Search for folders and subfolders recursively
Mathematics
- Implicit Expansion: Apply element-wise operations and functions to arrays with automatic expansion of dimensions of length 1
- graph and digraph Objects: Compute graph isomorphism, biconnected components, cut vertices, and node condensation
- graph and digraph Objects: Visualize graphs and networks in 3-D
- digraph Object: Reverse edge directions in a directed graph using the flipedge function
Graphics
- Date and Time Plotting: Use datetime or duration data in common plotting functions, and customize plots with datetime and duration rulers
- polarscatter and polarhistogram Functions: Create scatter and histogram plots in polar coordinates
- fimplicit and fimplicit3 Functions: Plot implicit functions of the form f(x,y) = 0 and f(x,y,z) = 0
- Tick Formatting Functions: Customize text, position, rotation, and format for axis tick labels
- errorbar Function: Create vertical and horizontal error bars and control hat width
- plot Function: Control location and frequency of markers with the MarkerIndices property
Data Import and Export
- readtable Function: Automatically detect and return date and time data in text and spreadsheet files
- detectImportOptions Function: Detect layout of text and Excel files and customize import options to readtable
- VideoReader Object: Read video frames more quickly from MP4 and MOV files on Windows systems
- imageDatastore Function: Read batches of images for faster processing in machine learning and computer vision applications
- TallDatastore Object: Efficiently retrieve preprocessed and cleaned-up data saved using the write function of the MATLAB tall arrays
- jsondecode, jsonencode Functions: Encode and decode structured data in JSON-formatted text
Data Analysis
- tall Arrays: Manipulate and analyze data that is too big to fit in memory
- Missing Data Functions: Find, fill, and remove missing data from arrays or tables with ismissing, standardizeMissing, fillmissing, and rmmissing
- Cumulative Functions: Ignore NaNs using 'omitnan' in cumsum, cummin, and cummax
- discretize Function: Discretize datetime and duration arrays to separate time-stamped data into regular time intervals
- Constrained Pan and Zoom: Pan or zoom in a single dimension for 2-D and 3-D plots
App Building
- App Designer: Include common 2-D plots in apps, such as area, bar, contour, histogram, yyaxis, and function plots
- App Designer: Create legends for 2-D plots in apps
- App Designer: Embed tabular displays using uitable in apps
- App Designer: Create callback functions that can be shared across multiple components
- App Designer: Add, position, and resize labeled components, and create components with names derived from labels
Performance
- Graphics Display: Render plots with large numbers of markers faster using less memory
- Execution Engine: Execute tight loops with scalar math faster
- Execution Engine: Construct objects faster
Hardware Support
- iPhone and Android Sensors: Log data from mobile sensors on the MathWorks Cloud over a Wi-Fi or cellular network
- Arduino: Write to shift registers
- Raspberry Pi: Generate PWM signals and control servo motors from GPIO pins on Raspberry Pi
- Raspberry Pi: Support for Raspberry Pi 3 Model B
- Raspberry Pi: Read from sensors and write to the LED matrix on a Raspberry Pi Sense HAT
Advanced Software Development
- matlab.net.http Object: Access HTTP services with low-level protocol control
- MATLAB Engine API for Java: Run MATLAB code from Java programs
- matlab.mixin.SetGet: Allow inexact property names by default in calls to set and get
- Unit Testing Framework: Generate Microsoft Word or Adobe PDF reports of a test run
- Unit and Performance Testing Frameworks: Improve code reuse and readability by using local functions in script-based tests