Introduction to Matlab Programming with Applications

Location: Room 108, 德田館
Time: 1900 ~ 2200


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

Instructor information

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.

WiFi

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 ]

Date Summary
2019.1.5 cpu-memory model, programming languages (machine code, assembly code, high-level language), computational solution, algorithms, binary system, data types (integers/floats, chars), numerical errors, assignment operator (=);
2019.1.9 scalars, arrays, arithmetic operators, cells, vectorization, element-by-element operators, rational operators (<, ==, >), logical operators (~, &, |), selections (&&, ||, if-elseif-else, switch-case-otherwise), error and error handling (try-catch-otherwise), for-each loop;
2019.1.12 while loop, jump statements (break, continue), nested loop;
2019.1.16 analysis of algorithms, profiling and speedup, functions, call stack;
2019.1.19 variable scope, debugger. primary/subfunction, anonymous functions, recursion;
2019.1.23 2D plots, 3D plots;
2019.1.26 gui design (see 08-GUIDE.ppt), file I/O (try stocks.zip), string and regular expressions;
2019.1.30 matrix computation, system of linear equations, basic concepts of linear algebra (vector space, linear independece, span, basis, dimension), 2D Laplace PDE boundary value problem by finite difference (fdm_example.m), least square error method (using the normal equations to find least-squares solutions);
2019.2.13 polynomial fitting, overfitting, polynomials, eigenvalue problems (see the world's largest eigenvalue problem), singular value decomposition (see SVD applications and svd_example.m), Simulink tutorial, blurring and edge detection by using FFT (imageProcessing_LowHighPass.m; see discrete fourier transform, illustration for Fourier transform, video by 3Blue1Brown);
2019.2.16 final project demo; object-oriented programming, optimization, compiled MALAB, deep learning toolbox, feedback sheet;

Sample Code

Gradebook

References

Matlab

Linear algebra

Numerical methods and analysis

Data mining and machine learning

Quantitative methods and prgoram trading

Optimization

Simulink

Misc

Additional reading