Introduction to MATLAB Programming with Applications

Location: Room 223A, 德田館
Time: 1900 ~ 2200


``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 the students, who want to learn MATLAB programming without any experiences before. We will demonstrate MATLAB features and deliver the essence of programming concepts with elegant algorithms. The students are expected to implement programs with MATLAB independently after 30-hour lecture. If capable, 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, check this. If you want to own a license of MATLAB, please check how to buy for student use. I strongly recommend that you could have a student license for MATLAB (, or you may try another reason: MATLAB vs. Python: Top Reasons to Choose MATLAB). If you cannot open MATLAB, 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.7.3
  • syllabus: grading policy
  • cpu-memory model
  • programming languages: machine code, assembly code, high-level language
  • algorithms
  • installation of MATLAB and common operations
  • binary system
  • data types (integers/floats, chars)
2019.7.6
  • numerical errors
  • assignment operator (=)
  • scalars with arithmetic operators
  • arrays (aka vectors/matrices)
  • cells (try 2330.csv with high-level file I/O)
  • vectorization: element-by-element operators
  • rational operators (<, ==, >)
2019.7.10
  • logical operators (~, &, |)
  • selections (&&, ||, if-elseif-else, switch-case-otherwise)
  • error and error handling (try-catch-otherwise)
  • loops (for, while) (also try this game)
  • examples: Monte Carlo simulation, bisection method for root-finding
  • jump statements (break, continue)
  • nested loops
2019.7.13
  • analysis of algorithms
  • profiling and speedup
  • functions
2019.7.17
  • call stack and variable scope
  • debugger
  • primary/subfunction
  • function handle and anonymous function
  • recursion
  • 2D plots
2019.7.20
  • (add: k-mean clustering, implied volatility along with Newton's method and convergence rate)
  • 3D plots
  • (FYR) gui design (see 08-GUIDE.ppt)
  • file I/O
2019.7.24
  • text processing: strings and regular expressions
  • matrix computation
  • solving a system of linear equations
  • basic concepts of linear algebra (vector space, linear independece, span, basis, dimension)
2019.7.27
2019.7.31
2019.8.3

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