200 likes | 319 Vues
This guide provides an overview of essential programming concepts in MATLAB, focusing on control flow, relational and logical operators, and loops. You'll learn how to execute commands in sequence, alter execution order using 'if', 'switch', 'for', and 'while' structures, and efficiently utilize relational and logical expressions. Examples demonstrate how to implement these concepts in practical scenarios, while emphasizing best practices like avoiding loops through vectorization. A strong foundation in these areas is crucial for effective programming and problem-solving in engineering and science.
E N D
Selection Programming EE 100
Outline • introduction • Relational and Logical Operators • Flow Control • Loops • Update Processes
Introduction • Programs commands in MATLAB are executed in sequence. • The sequence can be altered using programming structures (control flow -if, switch-, repetition- for, while-). • Decision can be made using relational and logical expressions. (a check if a condition is met or not)
Relational and Logical Operators • For more information: help ops.
Relational and Logical Operators • For relational and logical expressions: Inputs: True is any nonzero number False is 0 (zero) • Outputs: True is 1 (one) False is 0 (zero) • An output array variable assigned to a relational or logical expression is identified as logical.
Flow Control • Simple if Statement • The general form of a simple if statement is: if logical expression commands end Example: if d < 50 count = count + 1; disp(d); end
Flow Control • Nested if Statements : general form if logical expression commands if logical expression Commands end end
Flow Control • Example: Nested if Statements if d < 50 count = count + 1; if count > 10 disp(‘count > 10’); end end
General form if logical expression commands else commands end General form if logical expression commands elseif logical expression commands elseif logical expression Commands else Commands end Flow Control- else and elseif Clauses
Flow Control- else and elseif Clauses • Example: If average > 86 disp(‘Excellent’) elseif average > 76 disp(‘Very good’) elseif average > 68 disp(‘Good’) else disp(‘Ya 7aram- accepted’) end
General form: switch expression case test expression 1 commands case {test expression 2, test expression 3} commands ··· otherwise commands end Flow Control- Switch Structure
Example: d = floor(3*rand) + 1 switch d case 1 disp( ’That’’s a 1!’ ); case 2 disp( ’That’’s a 2!’ ); otherwise disp( ’Must be 3!’ ); end Example: d = floor(10*rand); switch d case {2, 4, 6, 8} disp( ’Even’ ); case {1, 3, 5, 7, 9} disp( ’Odd’ ); otherwise disp( ’Zero’ ); end Flow Control- Switch Structure
General form: for index = j:k statements end or for index = j:m:k statements End Floor (last − first)/increment + 1 for i = 1:5 disp(i) end for i = 1:2:5 disp(i) end Loops- for loop
General form while condition statements end Example: count = 0; While count < 5 disp (count) count= count + 1; end Loops- while loop
Loops- while loop - break • Example: count = 0; While count < 5 disp (count) count= count + 1; If count == 4 Break end end
Avoiding loops • In general, loops should be avoided in Matlab, as they can significantly increase the execution time of a program. • The execution time increases as MATLAB allocate memory each time through the loop. • Usually avoid loops by vectorizing.
example: vectorizing tic n = 1:10000000; s = sum( n ); toc elapsed_time = 0.5300 example: loop tic s = 0; for n = 1:10000000 s = s + n; end toc elapsed_time = 23.6840 Avoiding loops
Update Processes • Many problems in science and engineering involve modeling a process where the main variable is updated over a period of time. In many situations, the updated value is a function of the current value.