1© 2017 The MathWorks, Inc.
What’s New in MATLAB
May 16, 2017
2
MATLAB Foundation
Working with Data
Building & Sharing MATLAB Applications
Application Specific Enhancements
Summary and Wrap-up
Agenda
3
Agenda
MATLAB Foundation
Working with Data
Building & Sharing MATLAB Applications
Application Specific Enhancements
Summary and Wrap-up
4
Run code, present, share, and collaborate
using interactive documents
– Rich text formatting
– Interactive plot customization
with code generation
– Interactive equation editing
– Insert images
– Hyperlinking
See results together with code
– Side-by-side or inline views
Save directly to PDF or HTML
Live EditorChange the way you work in MATLAB
10
Redesigned Documentation
More examples
Easier to navigate
– Cleaner layout
– Improved discoverability
Added more domain-specific information
Release Notes filtering
– Look for types of changes across a range of releases
– Highlight only changes that have incompatibility considerations
11
Pause or Add Breakpoints During Code Evaluation
New feature allows you to troubleshoot problems
without specifying breakpoints in advance
– Pause execution of a program from the Editor
– Enter debug mode
– Resume program execution
12
New Graphics System
New look and feel
Easier plot customization
Enhanced plot customizations
– Automatic updating of datetime tick labels
– Dynamic legends
– Plot using categoricals
New and updated visualizations
– Animated lines
– Heatmaps
14
Increased Performance
Run MATLAB code faster with
redesigned execution engine– All MATLAB code is now JIT compiled
Enhancements
– Improved script and try/catch performance
– Execute loops with scalar math faster
– Construct objects and set properties faster
Graphics enhancements
– Render plots with large numbers of
markers faster using less memory
–
16
MATLAB Language EnhancementsProgramming flexibility
Functions in scripts
– Define local functions in scripts for improved
code reuse and readability
Property validation for classes
– Easily control a property's size, class, and value
17
Agenda
MATLAB Foundation
Working with Data
Building & Sharing MATLAB Applications
Application Specific Enhancements
Summary and Wrap-up
18
Importing and Exporting Data
Access online data
– RESTful, JSON, HTTP, CSV, text, and image data
Import improvements
– Improved performance
– Improved format detection in readtable and datastore
– Advanced control over import with detectImportOptions
– Datetime by default
Datastore
– Text, spreadsheet, images, and custom
– spreadsheetDatastore for collections of spreadsheet files
– fileDatastore for custom file formats
20
TablesSimplifying data management
For mixed-type tabular data
– Holds both data and metadata
Supports flexible indexing
Built-in functionality
(merge, sort, etc.)
Database-like functionality
– Join
– Stack / Unstack
21
Categorical ArraysStoring data with values from finite set of categories
For discrete non-numeric data
– Values drawn from a finite set of possible values ("categories”)
More memory efficient than a cell array of strings
Can be compared using logical operators
– Similar to numeric arrays
Allows for ordered categories
– Mathematical compare categories
22
Date and Time ArraysManage time more effectively
datetime for representing a point in time
duration, calendarDuration
for representing elapsed time
Same data type for computation and display
– Add, subtract, sort, compare, and plot
– Customize display formats
– Nanosecond precision
Support for time zones and leap seconds
– Accounts for daylight saving time
23
TimetablesTime-stamped tabular data
Manage time-stamped tabular data with time-based
indexing and synchronization
Store column-oriented data variables that have
different data types
Use dedicated functions to manage timetables
– Reorganize data
– Evenly space data by time
– Align multiple data sets
Use any table function with timetables
24
StringsThe better way to work with text
Manipulate, compare, and store text data efficiently
>> "image" + (1:3) + ".png"
1×3 string array
"image1.png" "image2.png" "image3.png"
Simplified text manipulation functions
– Example: Check if a string is contained within another string
Previously: if ~isempty(strfind(textdata,"Dog"))
Now: if contains(textdata,"Dog")
Performance improvement
– Up to 50x faster using contains with string than strfind with cellstr
– Up to 2x memory savings using string over cellstr
25
Data PreprocessingEasier ways to clean up messy data
Text manipulation functions
– More than a dozen functions including
contains, endsWith, and others
*missing functions
– Find, fill, and remove missing data
Options to ignore “NaNs” with cumulative statistic functions
Smooth noisy data with filtering or local regression using smoothdata
More easily deal with outliers using isoutlier and filloutliers
26
Analyze DataIntuitive data processing
Split-Apply-Combine Workflow
– findgroups – splits the data into groups
– splitapply – applies a function to each group,
and combines the results
Apply functions with tables and timetables using varfun
27
Machine
Memory
Big Data - Tall ArraysScaling your code to big data
Applicable when:
– Data is columnar – with many rows
– Overall data size is too big to fit into memory
– Operations are mathematical/statistical in nature
Statistical and machine learning applications
– Hundreds of functions supported in MATLAB and
Statistics and Machine Learning Toolbox
Tall Data
28
Summary of Tall Array Capabilities
Provides purpose-built functions for use with
data that does not fit in memory
ASCII File
Database (SQL)
Spreadsheet
Custom Files
• table
• cell
• numeric
• cellstr & string
• Date & Time
• categorical
Data Access
(100’s of functions)
Math
Statistics
Missing Data
Visualization
Date/Time
String
Data Munging
Linear Model
Logistic Regression
Discriminant Analysis
K-means
PCA
Random Data Sampling
Summary Statistics
Machine Learning
29
Run in parallel on Spark clustersMATLAB Distributed Computing Server
Deploy MATLAB applications as standalone applications on Spark clustersMATLAB Compiler
Run in parallel on compute clustersMATLAB Distributed Computing Server
Tall arraysMATLAB
100’s of functions supportedMATLABStatistics and Machine Learning Toolbox
Run in parallelParallel Computing Toolbox
Using Tall Arrays
Spark + Hadoop
Compute ClustersLocal diskShared folders
Databases
30
Agenda
MATLAB Foundation
Working with Data
Building & Sharing MATLAB Applications
Application Specific Enhancements
Summary and Wrap-up
31
Test Frameworks
MATLAB Unit Testing Framework
– Test your code early and often
– xUnit style framework
– Script / function / class based testing
– Works with continuous integration servers
– Automatic reporting
– Mocking framework
– Capture screenshots
Performance Testing Framework
– Time MATLAB code automatically
– Track performance over time
32
Source Control Integration
Manage your code from within
the MATLAB Desktop
Leverage modern source
control capabilities
– GIT and Subversion integration
in Current Folder browser
Use Comparison Tool to view and
merge changes between revisions
33
External Interfaces
Calling Libraries Written in Another Language From MATLAB
Calling MATLAB from Another Language
• Python
• C/C++
• Fortran
• Java
• COM components and ActiveX® controls
• RESTful, HTTP, and WSDL web services
• Java
• Python
• C/C++
• Fortran
• COM Automation server
34
App Designer
Enhanced design environment
– Component alignment guides
– Simpler property inspectors
Expanded UI component set
– Gauges
– Dials
– Tabbed interfaces
Better code management
– Object-based code format
– Better property and method management
– Code refactoring
37
Packaging Apps and User-Created Toolboxes
App Packaging
– Automatically includes all necessary files
– Documents required products
– Creates single installation file for easy distribution
and installation into the MATLAB apps gallery
Toolbox Packaging
– Create your own toolbox of custom functions and package it as a single installer file
– Contains all of the code, data, apps, documentation, and examples
– Included files and folders automatically appear on path when installed
– View details and uninstall toolboxes with Manage Add-on Toolboxes dialog box
– Documents required products
38
Agenda
MATLAB Foundation
Working with Data
Building & Sharing MATLAB Applications
Application Specific Enhancements
Summary and Wrap-up
45
Statistics and Machine Learning ToolboxMaking Machine Learning Easy and Accessible
Classification Learner App
1-click parallel computing
Big data algorithms (using tall arrays)
C code generation for predictive models
(requires MATLAB Coder)
Regression Learner App
46
Neural Network ToolboxDeep Learning
Construct convolutional neural network (CNN) architecture
Extract features from a trained network
Perform transfer learning with AlexNet, VGG-16, VGG-19
Access out-of-memory data sets using datastores
Train and test using CPUs or multiple GPUs
Import forward-looking models from Caffe
47
Neural Network ToolboxDeep Learning
Training Millions of images from 1000 different categories
Prediction Real-time object recognition using a webcam connected to a laptop
48
Computer Vision System Toolbox
Point cloud processing
Structure from motion
– Estimate the essential matrix and compute camera
pose from 3-D to 2-D point correspondences
Detect objects using region-based
convolution neural networks
(R-CNN, Fast R-CNN, Faster R-CNN)
49
Computer Vision System Toolbox3D point cloud processing and visualization
50
Automated Driving System Toolbox
Algorithm development
– Sensor Fusion
– Computer Vision
– Deep learning
Testing and verification
– Ground Truth Labeling App
– Traffic scenario generation
Visualization tools
Ground truth labeling Scenario Generation
Sensor Fusion Computer Vision & Deep Learning
51
Automated Driving System ToolboxSensor Fusion and Visualization
52
Signal Processing ToolboxSignal Analyzer App with time and frequency domain analysis
Analyze signals in time and frequency
and navigate through the signals using a
panner.
Spectral analysis of signals
Time domain panning
Enhanced command line interface allows
specifying input signals and sample rates
53
Parallel Computing
tall array support for big data
Measure data sent to workers using ticBytes and tocBytes
Cloud offerings with K80-equipped GPUs
Simplified parallel Simulink simulations using parsim
Send data to client using DataQueue and PollableDataQueue
Train a single deep learning network with multiple CPUs or multiple GPUs
54
Other Toolbox Enhancement Highlights
Optimization Toolbox
– Mixed Integer Linear Programming
Mapping Toolbox
– Web map display with dynamic base maps
Database Toolbox
– Analyze large data using a DatabaseDatastore and tall table capabilities
– Retrieve graph data from Neo4j Graph Database
Econometrics Toolbox
– Bayesian Linear Regression
– Vector Autoregressive Models (VAR) with Exogenous Inputs (VARX)
MATLAB Report Generator
– Document Object Model (DOM) API for creating customized reports
55
New Toolboxes
Automated Driving System Toolbox
Robotics System Toolbox
Audio System Toolbox
Vision HDL Toolbox
Simulink Test
Risk Management Toolbox
Simscape Fluids
Antenna Toolbox
Phased Array System Toolbox
WLAN System Toolbox
LTE System Toolbox
– 5G library for LTE available
56
Agenda
MATLAB Foundation
Working with Data
Building & Sharing MATLAB Applications
Application Specific Enhancements
Summary and Wrap-up
57
Other Topics
Data Analytics/Machine Learning
Parallel Computing
Image Processing and Computer Vision
Deep Learning
Controls Analysis
State Machines
Verification & Validation
Test Automation
Interfacing with ROS