200 likes | 313 Views
Selection Programming. EE 100. Outline. introduction Relational and Logical Operators Flow Control Loops Update Processes. Introduction. Programs commands in MATLAB are executed in sequence.
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.