introduction to matlab - richard...

44
DE, ST, MV Workshop Matlab 1 Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential Equations, Surface Theory, and Mathematical Visualization NCTS, Hsinchu, February 13, 2003

Upload: others

Post on 06-Aug-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 1

Introduction to Matlab

Weichung Wang

2003 NCTS-NSF Workshop on Differential Equations, Surface Theory, and Mathematical Visualization

NCTS, Hsinchu, February 13, 2003

Page 2: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 2

Main Goals

?A brief Matlab introduction for beginners

?Warm-up for Prof. Karcher’s courses

Page 3: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 4

Start Matlab in Windows

Page 4: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 5

Start Matlab in Unix shell

?In command line window, type

> matlab> matlab -nojvm

Page 5: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 6

What is Matlab?

?MATLAB == MATrix LABoratory

?Mathworks: http://www.mathworks.com

?Major software characteristics:?matrix-based numeric computation?high-level programming language?graphics & visualization?toolboxes provide application-specific functionality

Page 6: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 7

What Is Matlab? (Cont.)

?Multi-platform support (PC / Macintosh / UNIX)

?Interfaces to other systems.?Custom C, Fortran (MATLAB is callable)?Extensive data I/O facility

?Matlab is case sensitive (mtxA ~= MTXA)

Page 7: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 8

As a Calculator

Page 8: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 9

Built-in Variables

Page 9: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 10

Built-in Functions

Page 10: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 11

Looking for Functions

Page 11: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 12

On-line Help

Page 12: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 13

Suppress Output With Semicolon

Page 13: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 14

Multiple Statements Per Line

Page 14: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 15

Vectors and Matrices

Page 15: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 16

Matrix

Page 16: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 17

Colon Notation

Page 17: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 18

Colon Notation (Cont.)

Page 18: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 19

Colon Notation (Cont.)

Page 19: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 20

Complex Numbers

Page 20: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 21

Complex Number (Cont.)

Page 21: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 22

Complex Number (Cont.)

Page 22: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 23

Manipulation of Matrices and Vectors

Page 23: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 24

Vectorization

Page 24: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 25

Vectorization (Cont.)

Page 25: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 26

Array Operators

Page 26: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 27

Array Operators (Cont.)

Page 27: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 28

Array Operators (Cont.)

Page 28: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 29

Plotting

Page 29: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 30

Plotting (Cont.)

Page 30: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 31

Case Study

?Examples by Prof. Hermann Karcher? Set 1: FirstConventions.m (script)

?Change current directory to the directory containing the file FirstConventions.m

Page 31: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 32

Give Orders by Command, Script, and Function

?Script? Standard ASCII text files containing a sequence of

normal MATLAB commands/statements.

? The command PlotSine causes the statements in the file named PlotSine.m to be parsed & executed in order. (Interpreter, not compiler.)

? % Comments start with "%" characte

? Variables in a script file are global.

Page 32: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 33

Give Orders (cont.)

?Function? Function files provide extensibility to MATLAB.

? Usually contains input and output.

? Variables in a function file are by default local.

? However, you can declare a variable to be global .

Page 33: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 34

Flow Control Constructs

?Logic Control: if/ switch

if I == JA(I,J) = 2;

elseif abs(I-J) == 1A(I,J) = -1;

elseA(I,J) = 0;

end

switch algorithmcase 'ode23‘

str = '2nd/3rd order';case {'ode15s', 'ode23s'}

str = 'stiff system';otherwise

str = 'other algorithm';end

Page 34: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 35

Flow Control Constructs (cont.)

?Iterative Loops: for / whileN = 10;for I = 1:N

for J = 1:NA(I,J) = 1/(I+J-1);

endend

I = 1; N = 10;while I <= N

J = 1;while J <= N

A(I,J) = 1/(I+J-1);J = J+1;

endI = I+1;

end

Page 35: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(x) returns the mean value.% For matrices, MEAN(x) is a row vector% containing the mean value of each column.[m,n] = size(x);if m == 1

m = n;endy = sum(x)/m;

function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(x) returns the mean value.% For matrices, MEAN(x) is a row vector% containing the mean value of each column.[m,n] = size(x);if m == 1

m = n;endy = sum(x)/m;

Structure of a Function M-fileKeyword: function Function Name (same as file name .m)

Output Argument(s) Input Argument(s)

Online Help

MATLABCode

»output_value = mean(input_value) Command Line Syntax

Page 36: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

Workspaces or Stacks in MATLAB

?MATLAB (or Base) Workspace:For command line and script file variables.

?Function Workspaces:Each function has its own workspace for local variables.Communicate to Function Workspace via inputs & outputs.(Promotes structured coding & prevents name conflicts.)

?Global Workspace:Global variables can be shared by multiple workspaces. (Must be initialized in all relevant workspaces.)

Page 37: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

GlobalWorkspace

FunctionWorkspace

Inter-workspace Communication

Function inputs and outputs

Global variables

MATLABWorkspace

Initialize global variables in all relevant workspaces:»global variable_name

Initialize global variables in the “source” workspace before referring to them from other workspaces.

Page 38: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 39

Case Studies

?Examples by Prof. Hermann Karcher

? Set 2: ConCsqrt.m and Csqrt.m (both functions)

Page 39: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 40

Some Suggestions

?Write comments% s=1 if scalar product(w,last) >=0 else s=-1s=2*(real(w.*conj(last))>=0)-1;

Page 40: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 41

Some Suggestions (Cont.)

?Give meaningful variable names and avoid single character variable names

a=b*c;f=m*a;

force = mass * acceleration;for ii=1:3

moment = ii^2;end;

Page 41: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 42

Some Suggestions (Cont.)

?Indent codes

?Use Emacs(http://www.gnu.org/software/emacs/emacs.html)

?Learn by doing!

Page 42: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 43

If You Were Sleeping…

?It’s OK. Just remember two commands:

>> lookfor keyword

>> help command

Page 43: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

Happy coding!

:-)

Page 44: Introduction to Matlab - Richard Palaisvmm.math.uci.edu/Math32/Resources/Matlab/WangIntroToMatlab.pdf · Introduction to Matlab Weichung Wang 2003 NCTS-NSF Workshop on Differential

DE, ST, MV Workshop Matlab 45

Reference

?鈦思科技股份有限公司 Matlab 簡介投影片

?Slides by Gerald Recktenwaldhttp://www.prenhall.com/recktenwald.