1 / 19

Programming Environment

Introduction to Matlab:. Programming Environment. Control Flow. S. Awad, Ph.D. M. Corless, M.S.E.E. E.C.E. Department University of Michigan-Dearborn. Control Flow Topics. For Loop. While Loop. If-Elseif-Else-End. Switch. For Loop. For Loop Syntax:. for v = expression (or array)

maia
Download Presentation

Programming Environment

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Matlab: ProgrammingEnvironment Control Flow S. Awad, Ph.D. M. Corless, M.S.E.E. E.C.E. Department University of Michigan-Dearborn

  2. Control Flow Topics • For Loop • While Loop • If-Elseif-Else-End • Switch

  3. For Loop • For Loop Syntax: for v = expression (or array) … commands … end • To Create Column Vector x = [12 22 32 42]’ » x = zeros(4,1); » for i=1:4 x(i) = i*i; end;

  4. Nested For Loops • Create an m x n Hilbert Matrix

  5. Nested For Loops Code » m = 4;n = 5; » a = zeros(m,n); » for i=1:m, for j=1:n a(i,j)=1/(i+j-1); end end » aa = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250

  6. Matlab Code Results For Loop Array Example » data = [3 9 4 5; 7 16 -1 5]; » for n = data x = n(1) - n(2) end x = -4ÞFirst Column in data x = -7ÞSecond Column in data x = 5ÞThird Column in data x = 0ÞFourth Column in data

  7. While Loops • While Loop Syntax: whileexpresion : : commands : end

  8. While Loop Log Example • The MacLaurinseries expansion for log(1+x) (natural log), where |x| < 1, is given by: • Estimate log(1+x) for x=0.5 by summing the series until the term to be added next is less than eps(floating point relative accuracy constant) in absolute value

  9. While Loop Log Code » v=0;x=0.5;k=1; » while abs((x^k)/k) >= eps v = v+(-1)^(k+1)*((x^k)/k); k = k+1; end » v,k=k-1 v = 0.4055 log(1.5) k = 46 Number of Iterations

  10. While Loop Factorial Example • What is the first integer n for which n! (n factorial) is a 100 digit number? » n = 1; » while prod(1:n) < 1.e100 n = n + 1; end= » n n = 70

  11. Factorial Verification • Verify the results » prod(1:n)% n! = 70! ans = 1.1979e+100 » prod(1:n-1)%(n-1)! = 69! ans = 1.7112e+098 • Therefore, n=70 is the first integer where n! is a 100 digit number

  12. One Alternative Expression Syntax One Alternative Example One Alternative If - End if expression : :Commands : end » if a > 1 b=0; c=5; end

  13. Two Alternative Expression Syntax Two Alternative Example If-Else-End Constructions if expression : :Command Set 1 : else expression : :Command Set 2 : end » if a > 0 b=1; else b=-1; end

  14. Several Alternative Expression Syntax If-Elseif-Else-End Constructions if expression Command Set 1 elseif expression Command Set 2 elseif expression Command Set 3 else expression Command Set 4 end

  15. Breaking Out of a Loop • It is possible to break out of for loops & while loops using thebreak command • When the break statement is executed, MATLAB jumps from the current loop in which it appears • In the case of nested for or while loops, MATLAB jumps out of only the current loop

  16. Break eps Example » EPS=1; • Find the value of eps (floating point relative accuracy constant) » for i=1:1000 EPS=EPS/2; if(1+EPS)<=1 EPS=EPS*2; break; end end » EPS EPS = 2.2204e-016 NOTE: i=53

  17. Switch Case Constructions • Used when a sequence of commands must be conditionally evaluated based on repeated use of an equality test with one common argument switch expression casetest_expression_1 command Set 1 casetest_expression_2 command set 2 otherwise command set3 end Scalar or Character string

  18. Switch Example 1 • Display a message based on the variable var » var=3; » switch var case 1 disp('1'); case {2,3,4} disp('2 or 3 or 4'); case 5 disp('5'); otherwise disp('something else'); end 2 or 3 or 4

  19. » x=2.7; units='m'; » switch units » y y = 270 Switch Example 2 • Given measurement x in meters, Convert x to centimeters case {'feet','ft'} y=x*2.54*12; case {'inch','in'} y=x*2.54; case {'meter','m'} y=100*x; case {'centimeter','cm'} y=x; case {'millimeter','mm'} y=x/10; • Results in centimeters: otherwise disp(['Unknown Units:' units]); y=nan; end

More Related