MATLAB and Simulink Training

Advanced MATLAB Application Development

View schedule and enroll

Course Details

This two-day course provides a comprehensive introduction to the key principles and techniques of object-oriented development of interactive applications using MATLAB®. It focuses the Model-View-Controller pattern which separates the computational back end from the graphical front end. This results in reduced dependencies and improved maintainability. The course is intended for MATLAB developers who create or maintain medium- and large-scale applications and are looking for guidelines for structuring their code base. Topics include:
  • Applying the Model-View-Controller (MVC) design pattern in MATLAB
  • Creating a model class to act as the computational back end for an application
  • Working effectively with MATLAB graphics and user-interface control objects
  • Managing the layout of application components
  • Designing view classes to visualize application data
  • Designing controller classes to enable user interaction with the application
  • Integrating application components within an application launcher class
  • Packaging, deploying, and sharing apps

Day 1 of 2

Organizing Application Data in a Model Class

Objective: Create a model class to act as the computational back end for an application and store the necessary data. Define and implement the core model responsibilities and actions.

  • Exploring models within the MVC framework
  • Storing application data
  • Avoiding unnecessary data copies
  • Providing access to data for visualization
  • Providing mechanisms for control operations on the data
  • Communicating changes of state or data

Managing Application Layout

Objective: Create, access, and modify graphics objects within the MATLAB graphics hierarchy. Use predefined graphics callback functions. Use layout management objects to organize the appearance of the application's graphics objects and controls.

  • Navigating the MATLAB graphics hierarchy
  • Creating, accessing, and modifying graphics and control objects
  • Working with commonly used graphics objects
  • Organizing application components using layout management objects
  • Using predefined graphics callback functions

Visualizing Application Data with View Classes

Objective: Define view classes for visualizing application data. Define and implement the core view responsibilities and actions.

  • Views within the MVC framework
  • The relationship of a view to a model
  • The relationship of a view to its graphics objects
  • Dynamic updates to views using listeners and callbacks
  • The interaction between a model and its views

Day 2 of 2

Design Considerations for View and Controller Components

Objective: Simplify the development of view and controller classes using inheritance. Provide end users with a convenient means of interacting with the application components. Ensure robust application behavior by managing the lifecycle of view and controller components.

  • Unifying common properties and methods in a component superclass
  • Unifying common construction code
  • Using abstract methods to create a common interface
  • Creating a user-friendly component API
  • Managing the lifecycle of component objects

Enabling Interactive User Control with Controller Classes

Objective: Create controller classes to provide user interaction with the application data. Define and implement the core controller responsibilities and actions.

  • Controllers within the MVC framework
  • The relationship of a controller to a model
  • The relationship of a controller to its graphics objects
  • Hybrid components that are both a view and a controller
  • The interaction between a model and its controllers

Integrating Components with an Application Launcher

Objective: Integrate all application components and create a class managing the initialization, dependencies, and running status of an application. Define and implement the core application launcher responsibilities and actions.

  • Creating the main application figure and layout
  • Creating and storing the application components
  • Designing applications with menus and toolbars

Application Deployment

Objective: Deploy the application as a MATLAB app, standalone desktop app or web app.

  • Overview of the deployment possibilities
  • Creating a wrapper function to be used as the entry point for deplyoment
  • Deploying as a MATLAB app
  • Deploying as a standalone desktop app
  • Deploying as a web app

Level: Intermediate


Knowledge equivalent to Object-Oriented Programming with MATLAB. Some experience of working with MATLAB graphics objects is helpful.

Duration: 2 days

Languages: Deutsch, English, Français

View schedule and enroll