First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

Getting Started with MATLAB/SIMULINK

Duration: 5 Days

Intended Audience

This MATLAB training course is aimed at those, new to MATLAB, who need to master data processing and MATLAB programming in depth. It is especially well suited to those who will be working as part of a team with experienced MATLAB users and developers, and who need to "get up to speed" with MATLAB quickly. This course will also provide a suitable opportunity for evaluating MATLAB's technical data processing and plotting capabilities.


MATLAB is a high-level technical computing language and interactive environment for algorithm development, data visualisation, data analysis, and numeric computation. Using MATLAB, it is possible to solve technical computing problems faster than with traditional programming languages, such as C, C++, and Fortran. MATLAB can be used in a wide range of applications, including signal and image processing, communications, control design, test and measurement, financial modeling and analysis, and computational biology. Add-on toolboxes (collections of special-purpose MATLAB functions, available separately) extend the MATLAB environment to solve particular classes of problems in these application areas. MATLAB code can be integrated with code written in other languages and applications. MATLAB algorithms and applications can be integreated with other applications.
MATLAB, can be thought of as an integrated technical computing environment that combines numeric computation, advanced graphics and visualisation, and a high-level programming language. It is a very powerful tool for tackling systems and data processing probems. Whatever the objective - an algorithm, analysis, graph, report, or simulation - there is much truth in the catchphrase "MATLAB gets you there". The MATLAB language and development environment enablies engineers, scientists and business analysts to express their technical ideas concisely and effectively. MATLAB's extensive and powerful numeric computing methods and graphics tools facilitate testing out and exploring alternative ideas easily.
MATLAB is used in a wide variety of areas in industry including process industries, automotive, finance and economics, biotech/pharmaceutical and education. The open architecture makes it easy to use MATLAB and companion products to explore data and create custom tools that provide early insights and competitive advantages.
MATLAB also features a family of application-specific solutions called toolboxes. Most users of MATLAB, rely on one or more of these toolboxes. A toolbox is, quite simply, an integrated collections of MATLAB functions (M-files) that extend the MATLAB environment in order to tackle particular classes of problems. These toolboxes are researched and developed by experts in their fields, and make it easier for their users to learn, apply, and compare best-of-class techniques, and to evaluate different approaches without having to write a lot of complex code.
An important feature of MATLAB is its ease of extensibility. It is also possible to link to external software and data from MATLAB. MATLAB code and data formats are platform independent, applications and data can be shared across Linux, Windows and MAC OSX platforms.
Simulink is a platform for multidomain simulation and Model-Based Design of dynamic systems. It provides an interactive graphical environment and a customisable set of block libraries that allows the user to accurately design, simulate, implement, and test control, signal processing, communications, and other time-varying systems. Add-on products extend the Simulink environment with tools for specific modeling and design tasks and for code generation, algorithm implementation, test, and verification. Simulink is integrated with MATLAB, providing immediate access to an extensive range of tools for algorithm development, data visualisation, data analysis and access, and numerical computation. Simulink is, essentially, a block-diagram modelling environment for simulating dynamic systems, evaluating performance, and refining control, DSP, and communications system designs. Simulink block diagrams provide a highly interactive environment for nonlinear simulation. It is possible to run simulations interactively or in batch mode from the command line. Results are displayed "live" during simulations using scope and graph blocks.
Whereas MATLAB offers a conventional programming environment, Simulink and Stateflow provide a graphical design environment for modelling and simulating complex control, DSP and supervisory logic systems.Ā  Built on MATLAB, these products can call any MATLAB function including user-written routines, so combining the best of both approaches. Even toolbox functions can be embedded within Simulink block-diagram models.
Simulink Blocksets provide specialist block components for use in your Simulink Models. There are blocksets for DSP, Fixed Point, Power Systems, Dials and Gauages, Communications, CDMA reference, nonlinear control design, aerospace, mechanical systems, virtual reality and various DSP targets. Simulink related C/C++ code generators include Simulink Coder™ and Embedded Coder™
Simulink Coder™ (formerly Real-Time Workshop®) generates and executes C and C++ code from SimulinkĀ® diagrams, Stateflow® charts, and MATLAB® functions. The generated source code can be used for real-time and nonreal-time applications, including simulation acceleration, rapid prototyping, and hardware-in-the-loop testing. It is possible to tune and monitor the generated code using Simulink or run and to interact with the code outside of MATLAB and Simulink. Embedded Coder™ generates readable, compact, and efficient C and C++ code for use on embedded processors, on-target rapid prototyping boards, and microprocessors used in mass production. Embedded Coder enables additional MATLAB Coder™ and Simulink Coder™ configuration options and advanced optimizations for fine-grain control of the generated code's functions, files, and data. These optimizations improve code efficiency and facilitate integration with legacy code, data types, and calibration parameters used in production. Code generation and mixed C/C++ - Matlab programming are not covered on this course. If training in C/C++ programming for use with MATLAB is required this can be provided on request.

Course Outline

  • Introduction
    • What Is MATLAB?
    • The MATLAB System
    • Development Environment
    • Starting and Quitting MATLAB
    • MATLAB Desktop
  • Desktop Tools
  • Manipulating Matrices
    • Matrices And Magic Squares
    • Expressions
    • Working With Matrices
    • Creating And Concatenating Matrices
    • Matrix Indexing
    • More About Matrices And Arrays
    • Getting Information About A Matrix
    • Resizing And Reshaping Matrices
    • Shifting And Sorting Matrices
    • Operating On Diagonal Matrices
    • Empty Matrices, Scalars, And Vectors
    • Full And Sparse Matrices
    • Multidimensional Arrays
    • Summary Of Matrix And Array Functions
    • Controlling Command Window Input And Output
  • Data Types
    • Overview Of MATLAB Data Types
    • Numeric Types
    • Logical Types
    • Characters And Strings
    • Dates And Times
    • Structures
    • Cell Arrays
    • Function Handles
  • Programming With MATLAB
    • Basic Program Components
    • Variables
    • Keywords
    • Operators
    • MATLAB Expressions
    • Regular Expressions
    • Comma-Separated Lists
    • Program Control Statements
    • MATLAB Functions
    • M-File Programming
    • Program Development
    • Working With M-Files
    • M-File Scripts And Functions
    • Function Arguments
    • Function Handles
    • Calling Functions
    • Types Of Functions
    • Overview Of MATLAB Function Types
    • Anonymous Functions
    • Primary M-File Functions
    • Nested Functions
    • Sub-functions
  • Graphics
    • Basic Plotting
    • Editing Plots
    • Mesh And Surface Plots
    • Images
    • Printing Graphics
    • Handle Graphics
    • Graphics User Interfaces
    • Animations
  • Data Import And Export
    • Overview
    • Using The Import Wizard
    • Supported File Formats
    • Saving And Loading Mat-Files
    • Importing Text Data
    • Exporting Text Data
    • Working With Graphics Files
    • Working With Audio And Video Data
    • Working With Spreadsheets
    • Using Low-Level File I/O Functions
  • Error Handling
    • Checking For Errors With Try-Catch
    • Handling And Recovering From An Error
    • Message Identifiers
    • Warnings
    • Warning Control
    • Debugging Errors And Warnings
  • Scheduling Program Execution With Timers
    • Using A MATLAB Timer Object
    • Creating Timer Objects
    • Working With Timer Object Properties
    • Starting And Stopping Timers
    • Creating And Executing Callback Functions
    • Timer Object Execution Modes
    • Deleting Timer Objects From Memory
    • Finding All Timer Objects In Memory
  • Improving Performance And Memory Usage
    • Analyzing Your Program's Performance
    • Techniques For Improving Performance
    • Making Efficient Use Of Memory
    • Resolving "Out Of Memory" Errors
    • Programming Tips
  • Command And Function Syntax and the Matlab Environment
    • Help
    • Development Environment
    • M-File Functions
    • Function Arguments
    • Program Development
    • Debugging
    • Variables
    • Strings
    • Evaluating Expressions
    • MATLAB Path
    • Program Control
    • Save And Load
    • Files And Filenames
    • Input/Output
    • Starting MATLAB
    • Getting MATLAB To Start Up Faster
    • Operating System Compatibility
  • Mathematical Functions And Applications
    • Solutions To Systems Of Linear Equations
    • Curve Fitting And Interpolation
    • Integration And Differentiation
    • Strings, Time, Base Conversion And Bit Operations
    • Symbolic Processing
  • Elements Of GUI Design
    • What Is A MATLAB Graphical User Interface?
    • The Three Phases Of Interface Design
    • UI Control Elements
    • UI menu Elements
    • Low-Level MATLAB GUI Programming Techniques
    • High-Level GUI Development - Guide
    • Common Programming Desires With UI Objects
    • The MATLAB Event Queue
    • Creating Custom User Interface Components
  • SIMULINK - Introduction
    • Introduction
    • Product Overview
    • What Is Model-Based Design?
    • SIMULINK Software Basics
    • Starting SIMULINK Software
    • SIMULINK User Interface
    • Getting Help With SIMULINK Software
    • Creating A SIMULINK Model
    • Creating A Simple Model
    • Simulating The Model
    • Modeling A Dynamic Control System
    • Overview
    • Understanding The Demo Model
    • Simulating The Model