1 / 21

EE2372 Programming elements in MATLAB

EE2372 Programming elements in MATLAB. Dr. Jose Gerardo Rosiles Spring 2010 TTh 10:30-11:50 am. Variables . Store numerical and alphanumerical values x = 10, z=9.5, s=‘cat’ Can use more meaningful names mixing letters, numbers and underscore character

york
Download Presentation

EE2372 Programming elements in MATLAB

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. EE2372 Programming elements in MATLAB Dr. Jose Gerardo Rosiles Spring 2010 TTh 10:30-11:50 am

  2. Variables • Store numerical and alphanumerical values • x = 10, z=9.5, s=‘cat’ • Can use more meaningful names mixing letters, numbers and underscore character • Variables must start with a letter • Temperature = 45, name = ‘Peter’, number_of_students = 31

  3. Relational operators • >, >=, <=, < • == compares if two values are equal • != compares if two values are not equal • Result is a BOOLEAN decision: TRUE of FALSE • How do we represent boolean decisions numerically? • TRUE = 1 • FALSE = 0

  4. Decision commands • Logical operators allow us to compare values • What are comparisons useful for? • Make decision within your program • In most computer languages decision are made using the if-then-else statement • General syntax if ( relational operation is TRUE) do action A else do action B end

  5. Decision command • Example: A smoke detector • What are the steps taken by the program running by the microprocessor inside a smoke detector? • Let’s implement in MATLAB, syntax varies a little if ( relational operation) do A else do B end

  6. Logical operators • AND, OR, NOT • Also useful to make decisions • Make more complex logic statements • In MATLAB: & = AND | = OR ~ = NOT

  7. Example of compound statements if ( (x > 5) & (x < 10) ) If ( ( (x+y) <= z ) | (y>10) ) • What is the hierarchy of these commands?

  8. More on variables • The = operator has a different meaning than in mathematics. • What is the meaning of: x = x + 1 ? In Math: 0=1???? In programming: How does the microprocessor do it? • Equal “=“ is an assignment operator • What about x = x + y, where y is another variable?

  9. Looping structures • An important type of variable are arrays. • Array a group of variables with the same name, indexed by a unique integer • Recall sequences and series from calculus • Example in MATLAB: grade = zeros(1,10); Creates 10 variables names grade INDEXED by an integer from 1 to 10 : grade(1) = 80; grade(5) = 10; etc.

  10. Looping Structures • Allow you to repeat the same process many times. • We have for loops and while loops • for loops consist of an initial value, an increment and a final value • while loops require a stopping condition.

  11. for loops • MATLAB structure forinitial value: increment: final value //Do something end Example: Compute the average value of the grade() array.

  12. for loops Memory map grade = zeros(1,10); avg = 0; sum = 0; for?: ?: ? //How do we accumulate the values of grade? end avg = sum/10; Steps taken by microprocessor on first iteration Fetch sum Fetch grade(1) Add sum and grade(1) Store result in sum

  13. while loops grade = zeros(1,10); avg = 0; sum = 0; i = 1; while ( stop condition ) sum = sum + grade(i); i = i + 1; end avg = sum/10; i < 10

  14. Input and output in MATLAB • To get user input we have the special function “input” that allows to display a message Temperature = input(‘Enter toda’stempetature: ‘); • Write value at prompt and press enter to continue with program

  15. Input and output in MATLAB • For output there are more variations: disp(‘my message’); error(‘to print messages when an error condition has … occurred’) • File print file function, very advanced formatting: fprintf(1, ‘my string %d %f %s’, int_val, float_val, … str_val);

  16. A Complete Example %% program to convert number grades to letter graders grade = [80 70 75 90 65 95 75 80]; fprintf(1, ' Student Grade Letter Grade \n'); fori = 1:1:8 if(grade(i)>=90) letter_grade = 'A'; elseif (grade(i) >= 80) letter_grade = 'B'; elseif (grade(i) >= 70) letter_grade = 'C'; elseif (grade(i) >= 60) letter_grade = 'D'; else letter_grade = 'F'; end fprintf(1,' %d %d %c \n', i, grade(i), letter_grade); end Formatted Program Output Student Grade Letter Grade 1 80 B 2 70 C 3 75 C 4 90 A 5 65 D 6 95 A 7 75 C 8 80 B

  17. Modularity • Consider the previous program %% program to convert number grades to letter graders grade = [80 70 75 90 65 95 75 80]; fprintf(1, ' Student Grade Letter Grade \n'); fori = 1:1:8 if(grade(i)>=90) letter_grade = 'A'; elseif (grade(i) >= 80) letter_grade = 'B'; elseif (grade(i) >= 70) letter_grade = 'C'; elseif (grade(i) >= 60) letter_grade = 'D'; else letter_grade = 'F'; end fprintf(1,' %d %d %c \n', i, grade(i), letter_grade); end Some parts of the program may look too cluttered, making the program confusing

  18. Modularity • We can improve the program in terms of functionality and clarity using functions. • Functions (aka subroutines) encapsulate certain program behaviors or patterns that repeat over and over in your program. • This encapsulation • visually makes your program read better (less clutter) and • allows the “extension” of the language to add customized functionality

  19. Modularity • Let’s analyze our program • The chain of if-else statements is hard to read. • Let encapsulate this functionality into a function. functionoutput_value = function_name(param1, pararm2, param3, ….) // body of function end

  20. Modularity and Functions %% program to convert number grades to letter graders grade = [80 70 75 90 65 95 75 80]; fprintf(1, ' Student Grade Letter Grade \n'); fori = 1:1:8 if(grade(i)>=90) letter_grade = 'A'; elseif (grade(i) >= 80) letter_grade = 'B'; elseif (grade(i) >= 70) letter_grade = 'C'; elseif (grade(i) >= 60) letter_grade = 'D'; else letter_grade = 'F'; end fprintf(1,' %d %d %c \n', i, grade(i), letter_grade); end function letter = convert_to_letter(in_grade) if (in_grade>=90) letter_grade = 'A'; elseif (in_grade >= 80) letter_grade = 'B'; elseif (in_grade >= 70) letter_grade = 'C'; elseif (in_grade >= 60) letter_grade = 'D'; else letter_grade = 'F'; end letter = letter_grade; end letter_grade = convert_to_letter( grade(i) );

  21. Exercise • Write a function to compute . • Let be a non-negative integer ( ).

More Related