# 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

• Name: 盧政良 (Zheng-Liang Lu, Arthur)
• Email: arthurzllu at gmail.com

## Wi-Fi Access

• SSID: CSIE_guest or CSIE_guest-5G
• Account: guest_W11KR

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

• MATLAB programming
• Basic concepts of computer science (computational thinking)
• Data visualization
• Scientific computing

## Prerequisites

• Basic arithmetic and algebra
• Linear algebra and college calculus
• (Optional) Probability and statistics

No text.

## Overview

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

### Essentials

• Variables, data types, and vectorization
• Data structures: arrays, cells, and tables
• Flow controls: if-elseif-else, switch-case-otherwise, for loop, while loop, continue/break
• Performance analysis: profiling
• 2D and 3D plots
• Functions
• Text processing & file i/o
• Matrix computation
• Special issues: optimization, symbolic programming, parallel computing, data analysis

### 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 our classroom, update its license by using network.exe. Or you may use the older version of MATLAB from http://140.112.90.232:8080.

## 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, 322, 323, 334, 335, 355 ]

Date Summary
2022.3.30
• Syllabus: grading policy, algorithm, working environment
• Data, data type, and vectorization
• Variables and data types (integers, floats, strings)
• Numerical errors: finite precision
• Assignment operator (=) with a simplified memory model
• Arithmetic operators (+, −, *, /, ^)
• Numeric arrays and cell arrays
• Market data of Taiwan Stock Exchange (from TEJ)
2022.4.6
• Data, data type, and vectorization (cont'd)
• Strings and dates
• Vectorization: element-by-element operations
• Relational operators (<, ==, >) and logical values (true/false)
• Logical operators (~, &, |) and quantifiers (all, any)
• (FYR) Live script
• Flow controls
• Selections (&&, ||, if-elseif-else, switch-case-otherwise)
• Loops (for, while) (also try this game)
• Numerical example: Monte Carlo simulation
2022.4.9
• Flow controls (cont'd)
• Numerical example: bisection method for root-finding
• Jump statements (break, continue)
• Nested loops
• Two common algorithms: sorting and random permutation
• Performance analysis
2022.4.13
2022.4.16 No class due to personal excuse.
2022.4.20
• Functions
• User-defined functions
• Call stack and variable scope
• Debugger
• Primary function with helper functions
• Function handle and anonymous function
• Error and error handling (try-catch)
• Exercise: problem set
• Special issue: text processing
• Regular expressions
• Special issue: file operations & other I/O
• File operations
• Mat file
• Example: data pooling
2022.4.23
• Matrix computation
• Vectors and matrices
• Inner product: projection
• Linear transform: basic concepts of linear algebra (vector space, linear independece, span, basis, dimension)
2022.4.27
2022.4.30
2022.5.4
2022.5.7
• Demonstration of final projects

## References

### MATLAB

• Roger Chang, MATLAB程式設計, Department of Computer Science & Information Engineering, National Taiwan University