Professional MATLAB Programming

מק"ט: #68204 | משך קורס: 32 שעות אק'

Professional MATLAB Programming is a four-day course that provides techniques for programming professional applications in the MATLAB technical computing environment.
This course is intended for MATLAB users of all levels, both newbie and experienced. Basic familiarity with MATLAB is assumed, but not strictly required.
Various classroom exercises and examples are provided throughout the course.

*שדות חובה
PDF version


  • Create high-quality, robust and maintainable MATLAB programs
  • Avoid and solve potential pitfalls in your program’s execution
  • Deploy professional software
  • Protect your IP
  • Improve branding
  • Connect MATLAB applications to a variety of external software/hardware
  • Use MATLAB classes and object-oriented programming
  • Read/write data in a variety of binary and text formats
  • Use advanced MATLAB functionality such as XML processing, function handles, time series and asynchronous timers
  • Prepare professional-looking business reports
  • Maximize the performance of your application at reasonable cost
  • Apply skills that will enable you to continue learning advanced topics by yourself, at your own pace

קהל יעד

Engineers involved in creating or maintaining MATLAB applications, including:

  • Design and Simulation Engineers
  • Data Analysts
  • Research Scientists
  • Software, Firmware and Hardware Developers
  • Companies wishing to package MATLAB algorithms in a professional modern-looking graphical user interface


תנאי קדם

  • Basic familiarity with the MATLAB programming environment. 



  • Discuss course set-up, materials, and logistics
  • Provide a “big picture” view of the course ahead
  • Overview of advanced programming topics that are available in MATLAB


Best Practices in MATLAB Programming

  • Effective use of built-in MATLAB tools
  • Using external resources
  • General coding conventions and guidelines
  • The importance of maintainability, with specific recommendations
  • Documentation principles and guidelines
  • M-files vs. scripting
  • MATLAB function types
  • MATLAB data-storage types
  • Considerations in using different MATLAB data types
  • GUI conventions & best practices
  • Writing robust fault-tolerant code


Deploying MATLAB software

  • Mechanisms for IP protection
  • P-code vs. m-code vs. compilation
  • The MATLAB compiler and MCR
  • Improving software branding
  • Target-platform deployment
  • Solving deployment issues
  • Deploying documentation
  • Version control


Connecting MATLAB to External Software & Hardware

  • Interfacing MATLAB with COM/DCOM
    • Using ActiveX controls in MATLAB GUI
  • Interfacing MATLAB with Java
    • Using Java for networking, database, data collections, algorithms
    • Integrating Swing, MWT, JIDE, 3rd-party controls in MATLAB GUI
  • Interfacing MATLAB with Dot-Net
  • Interfacing MATLAB with external libraries (DLLs, SOs)
  • Interfacing MATLAB with Internet/intra-net webpages


Advanced Topics in MATLAB Programming

  • MATLAB file I/O – formats, tools, functions and best practices
  • Command window text formatting
  • XML processing
  • Time-series analysis
  • Object-oriented Matlab
  • Using function handles
  • Using timers


Preparing Professional Reports in MATLAB

  • The Publish tool
  • Using Word and Excel
  • Updating HTML webpages
  • Preparing presentation-level GUIs


MATLAB Performance Tuning

  • Introduction to performance tuning
    • When should we tune? When not to bother? When to stop tuning?
    • Performance-tuning tradeoffs
    • Vertical vs. horizontal scaling; Amdahl’s Law
    • Actual vs. perceived performance
  • Profiling MATLAB performance
    • Wall-clock vs. CPU profiling
    • Real-time profiling limitations
  • Standard profiling techniques
    • Loop optimization
    • Caching
    • Exception handling
    • Prefetching
    • Self-tuning
    • Multiple additional techniques
  • MATLAB-specific techniques
    • Effects of using different MATLAB data types
    • Vectorization
    • Using internal helper functions
    • Parallel & GPU programming
    • Multi-threading
    • Using Mex
    • Other aspects: Strings, I/O, Dates, Workspace, m-files, type-casts, etc.
  • Graphics & GUI techniques
    • Initial graphs generation
    • Updating graphs and images in real-time
    • GUI preparation
    • GUI responsiveness
    • Avoiding common pitfalls
  • Memory-related techniques
    • Why memory affects performance
    • Profiling memory usage in MATLAB
    • MATLAB’s memory storage and looping order
    • Array data allocation, re-allocation and pre-allocation
    • MATLAB’s Copy-on-Write mechanism
    • In-place data manipulation



  • Additional online & offline resources
  • Where next? – topics and resources for further learning
  • Course evaluation


היקף הקורס הינו 32 שעות אקדמאיות