Presentation is loading. Please wait.

Presentation is loading. Please wait.

Puff! The magic dragon, live by the tree… 第 3 章 檔案、函數、資料結構 files, functions, and data structures.

Similar presentations


Presentation on theme: "Puff! The magic dragon, live by the tree… 第 3 章 檔案、函數、資料結構 files, functions, and data structures."— Presentation transcript:

1 Puff! The magic dragon, live by the tree… 第 3 章 檔案、函數、資料結構 files, functions, and data structures

2 Puff! The magic dragon, live by the tree…

3 Why use ‘files’? 多行指令 or 日後重複使用

4 Puff! The magic dragon, live by the tree… 3 types of files *.m, ~ in ASCII format *.mat, ~ in binary format (variables in work space) data file ~ in ASCII format

5 Puff! The magic dragon, live by the tree… Recording ur session diary ~ save in the file ‘diary’ type diary ~ u can see the record after u have typed ‘diary’ diary filename ~ assign the filename that will be recorded get(O, ’ diary ’ ) ~ ‘on’ or ‘off’ ~ see the situation that whether diary is on or off!

6 Puff! The magic dragon, live by the tree… Saving and retriving ur workspace variables~ save & load save ~ in matlab.mat save filename load filename save filename var1 var2 save filename –ASCII save filename –double

7 Puff! The magic dragon, live by the tree… Importing data from externally generated files load filename (remember to remove the header first) e.g. load force.dat ~ than we get a matrix named ‘force’ Don’t use ‘*.mat’ as the data file!

8 Puff! The magic dragon, live by the tree… Importing spreadsheet files M=wk1read(‘filename’) A=xlsread(‘filename’) [A,B] =xlsread(‘filename’) 1.Try to generate a 3 by 10 matrix with all elements are ’10’ in excel, and save it as ‘ggg.xls’ 2.Try to read it from matlab

9 Puff! The magic dragon, live by the tree… The import wizard importing data exporting data

10 Puff! The magic dragon, live by the tree… Importing ASCII data P.129 attentions! Data type: numeric? Text? Or in mixed type!

11 Puff! The magic dragon, live by the tree… Import ASCII data files with text headers P.130-131

12 Puff! The magic dragon, live by the tree… Importing mixed text and numeric ASCII data P.131-132

13 Puff! The magic dragon, live by the tree… Importing binary data files ?A=[1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 ?save my_data.out A -ascii ?type A ??? Error using ==> type a.m: File not found. type my_data.out

14 Puff! The magic dragon, live by the tree… Controlling input & output ?speed=30 speed = 30 ?disp('The predicted speed is:') The predicted speed is: ?disp(speed) 30

15 Puff! The magic dragon, live by the tree… Example (p.134-135)

16 Puff! The magic dragon, live by the tree… ?a=3/7 a = 0.4286 ?format long ?a a = 0.42857142857143 ?format short e ?a a = 4.2857e-001 ?format long e ?a a = 4.285714285714286e-001

17 Puff! The magic dragon, live by the tree…

18

19

20

21 ?format rat ?a a = 3/7 ?format bank ?a a = 0.43

22 Puff! The magic dragon, live by the tree… User input input (‘please enter the value of x’) If x, y exist first! ?k=menu('Choose a data marker','o','*','x'); ?type=['o','*','x']; ?k k = 2 ?plot(x,y,x,y,type(k))

23 Puff! The magic dragon, live by the tree… User input xi=input ('please enter the initial value of x ') xf=input ('please enter the initial value of x ') x=[xi:0.01:xf]; y=sin(x); k=menu('Choose a data marker','o','*','x'); k type=['o','*','x']; plot(x,y,x,y,type(k))

24 Puff! The magic dragon, live by the tree… Elementary mathematical functions ?lookfor imaginary I Imaginary unit. J Imaginary unit. COMPLEX Construct complex result from real and imaginary parts. IMAG Complex imaginary part.

25 Puff! The magic dragon, live by the tree… Exponential & logarithmic functions ?x=9; ?y=sqrt(x); ?x,y x = 9 y = 3

26 Puff! The magic dragon, live by the tree… Complex number functions x=a+b*I ~ (M,th) M=sqrt(a^2+b^2) ~ abs(x) th=arctan(b/a) ~ angle(x) a=M*cos(th) ~ real(x) b=M*sin(th) ~ imag(x)

27 Puff! The magic dragon, live by the tree… Complex number functions a=input('please input the real part ') b=input('please input the real part ') x=a+b*i M=sqrt(a^2+b^2) M1=abs(x) th=atan(b/a) th1=angle(x) th2=atan2(b,a) aa=M*cos(th2) aa1=real(x) bb=M*sin(th2) bb1=imag(x)

28 Puff! The magic dragon, live by the tree… Complex number functions >> test5 please input the real part -3 a = -3 please input the real part 4 b = 4 x = -3.0000 + 4.0000i M = 5 M1 = 5 th = -0.9273 th1 = 2.2143 th2 = 2.2143 aa = -3.0000 aa1 = -3 bb = 4.0000 bb1 = 4

29 Puff! The magic dragon, live by the tree…

30 x = 3.0000 - 4.0000i ?abs(x) ans = 5 ?angle(x) ans = -0.9273 第四象限 ?y=-3+4*i y = -3.0000 + 4.0000i ?angle(y) ans = 2.2143 第二象限

31 Puff! The magic dragon, live by the tree… x is a vector abs(x) ~ return all the absolute value of each elements ~ a vector again! We can use sqrt(x’*x) to obtain the ‘length’ of the vector x when x is a column vector We can use sqrt(x*x’) to obtain the ‘length’ of the vector x when x is a row vector

32 Puff! The magic dragon, live by the tree… ?x=-3+4i x = -3.0000 + 4.0000i ?y=6-8i y = 6.0000 - 8.0000i ?mag_x=abs(x) mag_x = 5 ?angle_x=angle(x) angle_x = 2.2143 ?angle_y=angle(y) angle_y = -0.9273 ?sum_angle=angle_x+angle_y sum_angle = 1.2870 ?sum1=angle(x+y) sum1 = -0.9273 ?angle_product=angle(x*y) angle_product = 1.2870

33 Puff! The magic dragon, live by the tree… Numerical functions ?x=[5,7,15] x = 5 7 15 ?y=sqrt(x) y = 2.2361 2.6458 3.8730

34 Puff! The magic dragon, live by the tree… ?x1=2.1 x1 = 2.1000 ?x2=2.9 x2 = 2.9000 ?round(x1) ans = 2 ?round(x2) ans = 3 ?fix(x1) ans = 2 ?fix(x2) ans = 2 ?ceil(x1) ans = 3 ?ceil(x2) ans = 3 ?floor(x1) ans = 2 ?floor(x2) ans = 2 What happen when x1=-2.1, x2=-2.9?

35 Puff! The magic dragon, live by the tree…

36 Trigonometric functions ?x=[1;2;3] x = 1 2 3 ?sin(x.^2+5) ans = -0.2794 0.4121 0.9906 ?sin(sqrt(x)+1) ans = 0.9093 0.6649 0.3982

37 Puff! The magic dragon, live by the tree… atan(y/x), atan2(y,x) x = 3 ?y=-4 y = -4 ?atan(y/x) ans = -0.9273 ?atan2(y,x) ans = -0.9273

38 Puff! The magic dragon, live by the tree…

39 Hyperbolic functions

40 Puff! The magic dragon, live by the tree…

41 Self testing P.143 Use ur calculator now Use ur computer after this class

42 Puff! The magic dragon, live by the tree… User-defined functions function file ~ local variables function definition line 函數定義列 ~1st line function[output variables]=function_name(input variables); save as function_name.m

43 Puff! The magic dragon, live by the tree… function definition line 函數定義列 1.function[area_square]=square(side) 1 input/1 output 2.function area_square=square(side) 1 input/1 output 3.function[volume_box]=box(height, width,length) 3 input/1 output 4.function[area_circle,circumf]=circle(radius) 1 input/2 output 5.function sqplot(side) ~ just plotting

44 Puff! The magic dragon, live by the tree… a=32.2; %call_drop.m initial_speed=10; time=5; [feet_Dropped,speed]=drop(a, initial_speed,time) %[feet_Dropped,speed]=drop(32.2,10, 5) %[feet_Dropped,speed]=drop(32.2,10, [0:1:5]) function[dist, vel]=drop(g,v0,t); %calculate the velocity and falling distance for the free falling body %input var: acceleration, initial vel. v0, falling time t vel=g*t+v0; dist=0.5*g*t.^2+v0*t;

45 Puff! The magic dragon, live by the tree… Local variables U can use it freely in the functions U don’t have to care any multi-use of the variable

46 Puff! The magic dragon, live by the tree… Global variables Common used variables! See p.147-149 for detail description

47 Puff! The magic dragon, live by the tree… function P=ideal_1(T,Vhat,R); P=R*T./Vhat; function P=ideal_2(T,Vhat); R=0.08206; P=R*T./Vhat; function P=ideal_3(T,Vhat); global R; P=R*T./Vhat; global R R=0.08206; ideal_3([300,330],20)

48 Puff! The magic dragon, live by the tree… function P=vdwaals_1(T,Vhat,R,a,b); P=R*T./(Vhat-b)-a./Vhat.^2; function P=vdwaals_2(T,Vhat); R=0.08206 A=6.49; b=0.0562; P=R*T./(Vhat-b)-a./Vhat.^2; vdwaals_3(300,20) P??????????? P=vdwaals_3(300,20) global a,b

49 Puff! The magic dragon, live by the tree… applications Finding zeros of a function ~ roots ~ for single variable only ~fzero(‘function’,x0)~ find out the zero for ‘function’ near x0 ~fzero(‘function’,x0(1),xo(2))~ f(x0(1))*f(x0(2))<0

50 Puff! The magic dragon, live by the tree… function y=f1(x) y=x+2*exp(-x)-3;

51 Puff! The magic dragon, live by the tree…

52 minimizing a function of one variable fminbnd(‘function’,x1,x2) ???????? Pp.151-152

53 Puff! The magic dragon, live by the tree…

54

55

56

57

58

59

60

61


Download ppt "Puff! The magic dragon, live by the tree… 第 3 章 檔案、函數、資料結構 files, functions, and data structures."

Similar presentations


Ads by Google