programming with matlab - mathworks = 12 while (x < 100) x = x+1 if ... digital electronics vhdl,...
TRANSCRIPT
![Page 1: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/1.jpg)
1© 2014 The MathWorks, Inc.
Programming with MATLAB
Paolo Fabbri
Senior Engineer
![Page 2: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/2.jpg)
2
MATLAB Application Development Landscape
Prototyping Programming Deployment
![Page 3: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/3.jpg)
3
MATLAB Application Development Landscape
Prototyping Programming Deployment
![Page 4: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/4.jpg)
4
MATLAB Application Development Landscape
Prototyping Programming Deployment
![Page 5: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/5.jpg)
5
Today Focus
Prototyping Programming Deployment
Object-Oriented Programming
Unit Test Framework
Source Control Integration
Programming Interfaces
![Page 6: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/6.jpg)
6
What is a program?
![Page 7: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/7.jpg)
7
What is a program?
x = 12
while (x < 100)
x = x+1
if (x == 23)
disp('Hello')
end
end
Code
Data
x = 12
while (x < 100)
x = x+1
if (x == 23)
disp('Hello')
end
end
Assignment
Looping Test
Increment
Test to Act
Take Action
End
End
Operations
![Page 8: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/8.jpg)
8
Range of Programming Techniques
Operations
Data
function
script
command line
value
variable
structure
class
(properties)
(methods)
![Page 9: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/9.jpg)
9
Classes and Objects
People
Properties
•FirstName
•LastName
•BirthDate
•Address
•Contacts
Methods
•getFullName
•getAge
Paolo
Properties
•FirstName = Paolo
•LastName = Fabbri
•BirthDate = ...
•Address = ...
•Contacts = ...
Methods
•getFullName
•getAge
Davide
Properties
•FirstName = Davide
•LastName = Ferraro
•BirthDate = ...
•Address = ...
•Contacts = ...
Methods
•getFullName
•getAge
![Page 10: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/10.jpg)
10
Object-Oriented Programming Basics
properties
encapsulate object data
methods
implement the object behavior
events and listeners
implement objects communication
inerithance
allows composition and reusability
Employee
Properties
•Salary
•Group
•Manager
Methods
•showInOrgChart
People
Properties
•FirstName
•LastName
•BirthDate
•Address
•Contacts
Methods
•getFullName
•getAge
![Page 11: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/11.jpg)
11
Object-Oriented Programming with MATLAB
properties
encapsulate object data
methods
implement the object behavior
events and listeners
implement objects communication
inerithance
allows composition and reusability
![Page 12: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/12.jpg)
12
Case Study: Team Resources Assignment
Resource Manager
Resources
Submit Task
Response
Clients
![Page 13: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/13.jpg)
13
MATLAB Unit Test Framework
![Page 14: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/14.jpg)
14
Application Development Process
Te
st &
Ve
rificatio
n
Implementation
Research & Design
Explore and discover
Gain insight into problem
Evaluate options, trade-offs
Test
Design
Elaborate
Embedded software and
digital electronics
VHDL, Verilog
C, C++
Desktop or Web
Deployment
C, C++
.exe.dll
Requirements
![Page 15: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/15.jpg)
15
xUnit Patterns
Many testing Best Practices are emerging built around xUnit
Consistent nomenclature
Consistent architecture
Platform for robust testing methodologies
Setup/Teardown capabilities
![Page 16: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/16.jpg)
16
MATLAB Unit Test Framework
Write, run and analyze tests for MATLAB programs
Write in function form or xUnit-style class form
Run tests individually or grouped into a test suite
Analyze values using qualification functions
Setup and teardown to pretest and restore a state
Advanced testing capabilities
![Page 17: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/17.jpg)
17
Types of Qualifications
Type Action
Verify Fail & Continue Execution
Assert Fail & Halt Current Test, Continue to Next
Fatal assert Fail & Halt Framework Execution
Assume Filter Current Test
![Page 18: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/18.jpg)
18
Source Control Integration
![Page 19: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/19.jpg)
19
Source Control Integration in MATLAB
Stay inside MATLAB for development workflow
GIT and Subversion Integration in Current Folder
Integrated with tools designed for MathWorks file types (i.e. compare and merge)
![Page 20: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/20.jpg)
20
Programming Interfaces
![Page 21: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/21.jpg)
21
Calling MATLAB from Other Languages
Engine interface• C/C++
• Fortran
• Python®
Automation server• COM
• .NET
C/C++
COM
COM.NET
Fortran
Python
![Page 22: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/22.jpg)
22
Calling Other Languages from MATLAB
MATLAB C and Fortran API>> mex mycode.c
MATLAB interface to C shared library>> loadlibrary(‘foo', ‘foo.h')
MATLAB COM client support>> actxserver('Excel.Application')
MATLAB .NET interface>> NET.addAssembly('System.Speech')
MATLAB Java interface>> java.lang.String('boo')
MATLAB Python interface>> py.textwrap.wrap('Text');
C/C++
COM
.NET
Fortran
Python
Java
![Page 23: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/23.jpg)
23
Target-Specific Implementation
and
Large Scale Distribution
![Page 24: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/24.jpg)
24
MATLAB Application Development Landscape
Prototyping Programming Deployment
![Page 25: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/25.jpg)
25
MATLAB Application Development Landscape
Prototyping Programming Deployment
![Page 26: Programming with MATLAB - MathWorks = 12 while (x < 100) x = x+1 if ... digital electronics VHDL, Verilog C, C++ ... Write in function form or xUnit-style class form](https://reader034.vdocuments.site/reader034/viewer/2022052608/5aaff4827f8b9a6b308df2be/html5/thumbnails/26.jpg)
26
Thank You!