Introduction to MATLAB Programming with Applications

Location: Room 108, 德田館
Time: 0930 ~ 1230


``All science is dominated by the idea of approximation.''
-- Bertrand Russell (1872-1970)

Instructor Information

Wi-Fi Access

Recording Classroom Lectures Policy Recording of classroom lectures is prohibited unless advance written permission is obtained from the class instructor and any guest presenter(s).

Objectives

This short course is designed for students who want to learn MATLAB programming but without any experiences before. I will demonstrate MATLAB features and deliver the essence of programming concepts together with elegant algorithms. The students are expected to implement programs with MATLAB independently after 30-hour lecture. Moreover, I believe you could feel more confident of learning other programming languages and dealing with advanced topics in the future.

Prerequisites

Text

Overview

The major topics covered in the short course, if time permitting, are listed below for your reference.

Essentials

Selected toolboxes

You could see the complete list of toolboxes offered by MATLAB. If you want a trial version of MATLAB, please check this page. After you evaluate MATLAB and you think it benefits your work (or you may try another reason: MATLAB vs. Python: Top Reasons to Choose MATLAB), I strongly recommend tha you could purchase MATLAB by visiting the page how to buy. If you cannot activate MATLAB in classroom desktops, update the license by network.exe.

Schedule [ 236, 237, 238, 242, 244, 245, 247, 249, 251, 252, 253, 254, 256, 258, 260, 261, 262, 263, 264, 265, 266, 268, 272, 273, 275, 277, 279, 280, 281, 282, 283, 288, 289, 294, 295, 296, 297, 303, 304, 306, 307, 311, 317, 318 ]

Date Summary
2019.8.19
  • syllabus: grading policy
  • cpu-memory model
  • programming languages: machine code, assembly code, high-level language
  • algorithms
  • installation of MATLAB
  • binary system
  • data types (integers/floats, chars)
  • numerical errors: finite precision
2019.8.20
  • assignment operator (=)
  • scalars with arithmetic operators
  • arrays (aka vectors/matrices)
  • cells (try 2330.xlsx with high-level file I/O)
  • vectorization: element-by-element operators
  • rational operators (<, ==, >)
  • logical operators (~, &, |) and quantifiers (all, any)
  • selections (&&, ||, if-elseif-else, switch-case-otherwise)
2019.8.21
2019.8.22
  • jump statements (break, continue)
  • nested loops
  • analysis of algorithms (also read analysis of algorithms for further details)
  • profiling and speedup
2019.8.23
  • functions
  • call stack and variable scope
  • debugger
  • recursion
  • primary/subfunction
  • function handle and anonymous function
  • 2D plots
2019.8.26
  • 3D plots
  • linear/spline interpolation
  • (FYR) gui design (see 08-GUIDE.ppt)
2019.8.27
  • file I/O
  • new data types: table and datetime
  • text processing: strings and regular expressions
  • matrix computation
2019.8.28
2019.8.29
2019.8.30

Sample code

Interesting topics for final projects

Gradebook

References

MATLAB

Linear algebra

Numerical methods and analysis

Data mining and machine learning

Quantitative methods and prgoram trading

Optimization

Simulink

Misc

Additional reading