Matlab training seminars – Zurich, 19-20 June 2017

Advanced Matlab training, Zurich 19-20 June 2017
Advanced Matlab training courses/seminars will be presented by me (Yair) in Zürich, Switzerland on 19-20 June, 2017:

  • June 19 (full day) – Object-oriented Matlab programming – US$399 ($100 discount if paid by May 31)
  • June 20 (full day) – Matlab performance tuning (speed-up) – US$399 ($100 discount if paid by May 31)
  • Enroll to both courses (2 full days) for a total price of US$699 ($150 extra discount if paid by May 31)

Both courses/seminars are confirmed: they do not depend on a minimal number of participants. But there is a limit on the total number of participants, so the sooner you enroll, the more likely you are to get a seat.

The seminars are targeted at Matlab users who wish to improve their program’s maintainability and usability. Basic familiarity with the Matlab environment and coding/programming is assumed. The courses will present a mix of both documented and undocumented aspects, that is not available anywhere else. The curriculum is listed below.

This is a unique opportunity to enhance your Matlab coding skills in a couple of days, at a very affordable cost.

If you are interested in either or both of these courses, please Email me (altmany at gmail dot com).

I can also schedule onsite Matlab training at your location, customized to your organization’s specific needs. Additional information can be found on my Training page.

During the week of the training, I will be in Zürich (June 18-20), Bern (June 22) and Geneva (June 21-24). I will also be in Geneva between May 14-18. If you wish to meet me in person to discuss how I could bring value to your work, then please email me (altmany at gmail).

 Email me

Object-oriented Matlab programming – 19 June, 2017

  1. Introduction to Matlab OOP (MCOS)
    • Comparing paradigms: OOP vs. procedural programming
    • Importance of OOP for development and maintainability
    • Matlab’s increasing reliance on OOP
    • Benefits and drawbacks of Matlab OOP (MCOS)
    • Matlab OOP’s historic evolution and future outlook
  2. Components of MATLAB OOP
    • packages
    • classes
    • properties
    • methods
    • events and callbacks
    • enumerations
  3. Matlab classes
    • Format and components of a Matlab class
    • Handle vs. value classes
    • Class inheritance
    • Class folders and files
    • Class attributes
    • Specifying property data types/signature
    • Controlling access to internal data
  4. Class methods
    • Controlling access to internal methods
    • Property setter and getter methods
    • Constructors and destructors
    • Alternatives for invoking class methods
    • Overloading class methods
  5. Events and callbacks
    • Defining and using class events
    • Notifying (raising) class events
    • Listeners on class events
    • Custom user EventData objects
    • Property-change events
  6. Advanced Matlab OOP programming
    • Copying objects
    • Static classes
    • Object pooling
    • The singleton design pattern
    • Enumeration
    • Class introspection
    • Run-time performance aspects
    • Coding conventions and best practices

Throughout the day, a sample data-structure container class will be developed and presented in phases, illustrating the points discussed in the presentation, along with suggestions and discussion on design alternatives, programming quality, efficiency, robustness, maintainability, and performance. In other words, the seminar will include not just a formal presentation of the material but also a live annotated development of a real-world Matlab class that illustrates the presented topics.

Matlab performance tuning (speed-up) – 20 June, 2017

  1. Profiling Matlab performance
    • Matlab’s profiler tool
    • When to profile and when not to bother
    • When should we stop optimizing the code?
    • Profiling techniques
    • Real-time profiling limitations
    • Using the profiler vs. tic/toc
    • performance vs. maintainability, robustness, development time, repeatability
    • Matlab’s JIT and its effect on profiling
    • Vertical vs. horizontal scalability
  2. Standard programming speed-up techniques
    • Perceived vs. actual performance
    • Loop optimizations
    • Caching
    • Smart checks bypass
    • Exception handling and performance
    • Parallelization
    • GPU
  3. Data analysis techniques
    • Selecting the right tool for the job
    • Outliers removal
    • Controlling the target accuracy
    • Coordinate transformation
  4. Matlab-specific techniques
    • Effects of using different storage types
    • Vectorization
    • Object-orient Matlab and performance
    • Using internal helper functions
    • I/O aspects
    • Strings
    • Date/time usage
    • Matlab startup
    • Using compiled code (MEX, DLLs etc.)
  5. Graphics and GUI techniques
    • Initial graphs generation
    • Updating graphs in real-time
    • GUI preparation
    • GUI responsiveness
    • Avoiding common pitfalls
  6. Memory-related techniques
    • Why memory affects performance
    • Profiling Matlab’s memory usage
    • Matlab’s memory storage and looping order
    • Pre-allocation and other allocation techniques
    • In-place data manipulations
    • Optimizing memory access
    • Using global and persistent variables
Categories: Public presentation

Tags: , , ,

Bookmark and SharePrint Print

Leave a Reply

Your email address will not be published. Required fields are marked *