what’s new in matlab · 4 run code, present, share, and collaborate using interactive documents...

41
1 © 2017 The MathWorks, Inc. What’s New in MATLAB May 16, 2017

Upload: others

Post on 07-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

1© 2017 The MathWorks, Inc.

What’s New in MATLAB

May 16, 2017

Page 2: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

2

MATLAB Foundation

Working with Data

Building & Sharing MATLAB Applications

Application Specific Enhancements

Summary and Wrap-up

Agenda

Page 3: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

3

Agenda

MATLAB Foundation

Working with Data

Building & Sharing MATLAB Applications

Application Specific Enhancements

Summary and Wrap-up

Page 4: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 5: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 6: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 7: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 8: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 9: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 10: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

17

Agenda

MATLAB Foundation

Working with Data

Building & Sharing MATLAB Applications

Application Specific Enhancements

Summary and Wrap-up

Page 11: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 12: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 13: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 14: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 15: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 16: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 17: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 18: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 19: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 20: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 21: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 22: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

30

Agenda

MATLAB Foundation

Working with Data

Building & Sharing MATLAB Applications

Application Specific Enhancements

Summary and Wrap-up

Page 23: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 24: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 25: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 26: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 27: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 28: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

38

Agenda

MATLAB Foundation

Working with Data

Building & Sharing MATLAB Applications

Application Specific Enhancements

Summary and Wrap-up

Page 29: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 30: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 31: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 32: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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)

Page 33: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

49

Computer Vision System Toolbox3D point cloud processing and visualization

Page 34: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 35: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

51

Automated Driving System ToolboxSensor Fusion and Visualization

Page 36: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 37: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 38: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 39: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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

Page 40: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

56

Agenda

MATLAB Foundation

Working with Data

Building & Sharing MATLAB Applications

Application Specific Enhancements

Summary and Wrap-up

Page 41: What’s New in MATLAB · 4 Run code, present, share, and collaborate using interactive documents –Rich text formatting –Interactive plot customization with code generation –Interactive

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