MATLAB and Simulink Training

Advanced MATLAB Application Development

Course Details

This two-day course provides a comprehensive introduction to the key principles and techniques of object-oriented application development using MATLAB®. The course is intended for MATLAB developers who will create medium- and large-scale applications for end users, as well as existing application developers looking for best practices and guidelines for structuring their code base. The course focuses on interactive application development, although the techniques are applicable to any large-scale application.

Topics include:

  • Applying the Model-View-Controller (MVC) design pattern in MATLAB
  • Creating a model class to act as a data repository 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 a data repository for an application and store the state of the system. Define and implement the core model responsibilities and actions.

  • Exploring models within the MVC framework
  • Avoiding unnecessary data copies
  • Storing application data
  • 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
  • Packaging and updating apps

Level: Intermediate

Prerequisites:

Duration: 2 days

Languages: English