MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A....

41
MATLAB SESSION Lyne Tchapmi CS 231A

Transcript of MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A....

Page 1: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

MATLAB SESSION

Lyne Tchapmi

CS 231A

Page 2: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Roadmap❖ What is MATLAB?

❖ Setup and IDE

❖ Syntax

❖ Variables, Matrix/Vectors

❖ Datatypes and Operators

❖ Control Flow

❖ Plots and Images

❖ Tips and Tricks

Page 3: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

What is MATLAB?❖ MATLAB(Matrix Laboratory)

❖ Programming Language optimized for matrix operations

❖ Editor + IDE

❖ Libraries (toolboxes)

❖ Computer Vision, Statistics and ML, Finance…

Page 4: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

What is MATLAB?❖ GOOD FOR..

❖ Linear algebra programming (matrix multiplication, decomposition..)

❖ Scientific computations (numerical, data analysis..)

❖ Quick Prototyping (toolboxes)

Page 5: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Roadmap❖ What is MATLAB?

❖ Setup and IDE

❖ Syntax

❖ Variables, Matrix/Vectors

❖ Datatypes and Operators

❖ Control Flow

❖ Plots and Images

❖ Tips and Tricks

Page 6: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Access to MATLAB❖ Requires a License

❖ Buy through Stanford web store ($70/year)

❖ Use Stanford corn cluster (Free)

❖ May ask for authentication (passcode)

OR

(Shell/Command Window only -faster but no GUI)

Page 7: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

MATLAB IDE

MENU

Page 8: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

MATLAB IDE

FOLDERS&

FILES

Page 9: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

MATLAB IDE

WORKSPACE(for variables)

Page 10: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

MATLAB IDE

COMMANDWINDOW

Page 11: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Command Window

Page 12: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Command Window

Page 13: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

First Script

Page 14: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

First script(.m file)

Page 15: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

First function(function.m file)

Page 16: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Publishing

Page 17: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Publishing

Page 18: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Roadmap❖ What is MATLAB?

❖ Setup and IDE

❖ Syntax

❖ Variables, Matrix/Vectors

❖ Datatypes and Operators

❖ Control Flow

❖ Plots and Images

❖ Tips and Tricks

Page 19: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Roadmap❖ What is MATLAB?

❖ Setup and IDE

❖ Syntax

❖ Variables, Matrix/Vectors

❖ Datatypes and Operators

❖ Control Flow

❖ Plots and Images

❖ Tips and Tricks

Page 20: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Variables, Matrix/Vector❖ Variables

❖ Row Vectors

Page 21: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Variable, Matrix/Vector❖ Column vectors

❖ Matrices

Page 22: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Special Matrices and Matrix Operation❖ Special Matrices

❖ Indexing

Page 23: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Special Matrices and Matrix Operation❖ Dot Product/Matrix Product

❖ Transpose

❖ I

❖ Inverse

Page 24: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Useful Matrix Functions❖ size(A);

❖ diag(v); diag(A); …

❖ rand(n); randi(m,n); randn(m,n);

❖ max(A); min(A,[],dim); sum(A,[],dim);

❖ svd, eig

❖ …

Page 25: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Roadmap❖ What is MATLAB?

❖ Setup and IDE

❖ Syntax

❖ Variables, Matrix/Vectors

❖ Datatypes and Operators

❖ Control Flow

❖ Plots and Images

❖ Tips and Tricks

Page 26: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Data Types

❖ int

❖ double

❖ char

❖ uint8

❖ ….

❖ struct❖ s = struct('f1','a','f2',[])

❖ cells❖ C = {‘firstname’,8, [45 6 7]};

Page 27: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Matrix vs Element-wise operations

Page 28: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Relational Operators❖ Element-wise

❖ Output binary (1,0)

Page 29: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Roadmap❖ What is MATLAB?

❖ Setup and IDE

❖ Syntax

❖ Variables, Matrix/Vectors

❖ Datatypes and Operators

❖ Control Flow

❖ Plots and Images

❖ Tips and Tricks

Page 30: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Control Flow (if statements)

Page 31: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Control Flow(for statements)

Page 32: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

While Statements

Page 33: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Roadmap❖ What is MATLAB?

❖ Setup and IDE

❖ Syntax

❖ Variables, Matrix/Vectors

❖ Datatypes and Operators

❖ Control Flow

❖ Plots and Images

❖ Tips and Tricks

Page 34: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Plotting❖ figure

❖ Holds individual plot/ image. Call figure() for each distinct plot/image when publishing.

❖ hold / hold all❖ draw several plots on the same image

❖ title(str)

❖ xlabel(str)

❖ ylabel(str)

❖ legend(strs)

Page 35: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Plotting

Page 36: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Plotting

Page 37: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Scatter plot

Page 38: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Images❖ imread(str)

❖ Reads image as RGB (m x n x 3 matrix)

❖ rgb2gray(I);

❖ imshow(I)❖ Displays matrix/image

❖ double,single…: 0=black, 1=white

❖ uint8: 0=black, 255=white

Page 39: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Roadmap❖ What is MATLAB?

❖ Setup and IDE

❖ Syntax

❖ Variables, Matrix/Vectors

❖ Datatypes and Operators

❖ Control Flow

❖ Plots and Images

❖ Tips and Tricks

Page 40: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

Tips and Tricks❖ Use the publish command to submit your work!❖ Use comments for legible submissions

❖ %% Problem 1

❖ Check Matrix dimensions❖ Element-wise vs matrix operators mistakes❖ Use matrix operations instead of for loops (That’s what’s

MATLAB is for)❖ Use functions when necessary (For your project for example)

Page 41: MATLAB SESSION CS 231A - Stanford University · 2016-04-02 · MATLAB SESSION Lyne Tchapmi CS 231A. Roadmap ... 4/1/2016 11:49:21 PM ...

QUESTIONS?