1 / 35

Library Functions...

Library Functions. Old functions Vocabulary Rounding numbers Generating random numbers mod() Properties of mod() Ex1: even or odd? Ex2: error when not a whole number. 1. Remember these functions ?. clc clear sin(), sind () … sqrt (), abs() … input(), fprintf(), disp ()

Télécharger la présentation

Library Functions...

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. Library Functions... Old functions Vocabulary Rounding numbers Generating random numbers mod() Properties of mod() Ex1: even or odd? Ex2: error when not a whole number

  2. 1. Remember these functions? clc clear sin(), sind() … sqrt(), abs() … input(), fprintf(), disp() MATLAB’s Core System has ~2300functions This doesn’t include any of the toolboxes

  3. But what is a function? • A function is like a box with holes in it. Output Input Magic bazinga floor rand why sqrt sin The _________ function

  4. 2. Official vocabulary 2. MATLAB is “passing” inputs to the function. variable = functions_name( argument list ); • Example: hypotenuse = sqrt(a^2+b^2); 1. This is a “function call”. MATLAB “calls upon the execution” of the code behind the keyword. 3. MATLAB “collects” the “return-value” inside this variable. 2. MATLAB “passes” the result of a^2+b^2” 3. MATLAB “collects” the “return-value” 1. MATLAB “calls upon the execution” of sqrt()

  5. Various uses • While the function’s name is ALWAYSneeded, the call may/may not require either one of the other 2 parts. variable = functions_name( arguments); • For example… clc and clear require neither fprintf() requires at least 1 argument (the format string), but typically we do not collect the result.

  6. Arguments? Collecting return values? • 1 or many arguments: • Some functions are versatile in how many arguments they need • When there is a list of arguments, separate each with a comma: , 1 argument: a string age = input(‘Enter your age: ’); 2 arguments: both strings username = input(‘Username: ’, ‘s’); 3 arguments: 1 string and 2 variables fprintf(‘Hello %s! You are %d years old!\n’,… username, age); 

  7. Rounding functions NEW • Rounding floats to integer *w.r.t = with respect to + -

  8. Examples Civil Eng. How many bags of concrete mix are needed to build stairs? • Step1: • Givens needed: • Dimensions of one step • How many stairs • How much concrete does one bag of concrete mix make? • Find: • Number of bags needed

  9. Examples Civil Eng. Step2 • Step3 • Step4 • - Assume there is a support system underneath. Only the steps need to be built. • Assume units are inches for the thickness and depth, and feet for the width • Each 80lbs bag allows for a coverage of 2sq.ft over a 4 inch height (so 2*4/12ft^3) height depth width

  10. Examples Civil Eng. How many bags of concrete are needed to build stairs? Step5: Assuming 6 stairs: 3ft wide, 6in tall, 11in deep totVolume(ft3) = Nb_stairs * width * depth * thick = 6 * 3* 6/12 * 11/12 = 8.25 ft^3 Number of bags = totVolume(ft3)/ volume1bag = 8.25/0.66 = 12.38 There is a need for ______ bags.

  11. Try This Tonight! • Convert 5632 seconds to a format hrs:min:sec! • 5632 secd = 1.56444444 hours • 3600 (secd/hr) • Round down: 1 full hour • 5623 sec – 1* 3600 sec = 2023 seconds • 2023 secd = 33.71666 minutes • 60(secd/min) • Round down: 33 full minutes

  12. Example2 Hrs/Min/Sec 2023 – 33*60 = 43 seconds Conclusion: 5632seconds is also: 01:33:43 The function used to round down is: ________ Best practice: code this mini-example tonight. Allow the user to enter the initial number of seconds.

  13. 4. Generating Random Numbers • Generating random numbers • rand() is another one of those versatile functions x=rand; x=rand(); %some keep the () to remind themselves it is a function-call vs. a variable name. x=rand(1); %avoid, it’s overdoing it… x=rand(2); %a 2-rows by 2-columns matrix x=rand(2,5); %a 2-rows by 5-columns matrix 

  14. rand() and a little bit of algebra: +- • What happens to a number k between 0 and 1 if it is added to another number? For example: What can we say about: 2+k ? What can we say about: k-4 ? >> The interval shifts left/right. k 1 0 k 0 2 1 3

  15. rand() and a little bit of algebra • What happens to a number k between 0 and 1 if it is multiplied by another number? For example: What can we say about: 5*k ? What can we say about: k/2 ? >> The interval grows/shrinks. k 0 1 k 0 5

  16. rand() and a little bit of algebra • What is the range of values K lies within? K = rand*6; K = rand*45-6; K = 2+rand*3.3; K = -6.5+rand/2; K = (rand*3)/2-2; K ? ? 1) Plug 0 into the formula 2) Plug 1 into the formula 3) Remember that all numbers between those 2 values could be generated, but NOT those 2 values

  17. End of algebra • So.. Using a combination of arithmetic operators, how would you generate these values (both excluded): k1 = rand_______________________; k2 = rand_______________________; k1 k2 15 -5.5 20 5.5

  18. Conclusion • To generate 1 float in the interval : (a,b) k = rand*(b-a)+a; This is not a formula worth remembering.. Just remember algebra! (a, b) means the numbers a through b EXCLUDING a and b [a, b] means the numbers a through b INCLUDING a and b Sometimes, square brackets are used and the direction it points also indicates inclusion or exclusion. Ex: ]a, b[ is the same as (a,b)

  19. What about generating whole numbers? • If rand generates one float, how do we generate random numbers? • like dice values: 1-6? (included of course) %roll the die die = ____________;

  20. Why not round? • What happens with we do this: DiceValue = round(6*rand) (0, 1) becomes (0, 6). Think of this as 0.0001 to 5.9999. Then the number is rounded... 0 1 2 3 4 5 6 ( ) 0 0.5 1.5 2.5 3.5 4.5 5.5 6

  21. Rounding functions NEW • Rounding floats to integer *w.r.t = with respect to floor( rand*6 + 1 ) % (0-1)  (0-6)  (1-7) = [1.0001-6.9999]  [1 – 6] ceil( rand * 6 ) % (0-1)  (0-6) = [0.0001 – 5.9999]  [1 – 6] + -

  22. 1. Modulus • The modulus-function calculates the remainder of a long division >> doc mod

  23. 1. Modulus • The modulus-function calculates the remainder of a long division >> doc mod • For example: 2 5 >>result = 77/3 result = 25.6667 >>result = mod(77,3) result = 2 >> 3 7 7 -6 1 7 -1 5 2

  24. 1. Modulus • The modulus-function calculates the remainder of a long division >> doc mod • For example: >>result = 77/3 result = 25.6667 >>result = mod(77,3) result = 2 >> mod(..) is a function that REQUIRESTWO ARGUMENTS. (mod(77) is an invalid statement…)

  25. 1. Modulus • The modulus-function calculates the remainder of a long division >> doc mod • For example: 2 5 >>result = 77/3 result = 25.6667 >>result = mod(77,3) result = 2 >> 3 7 7 -6 1 7 -1 5 2 How is this ever useful…?

  26. 2. Properties of mod() • If x is evenly divisible by y (i.e no left-overs), mod(x,y) will return 0 • “mod” any number with another one “N”, the return-value will be a whole number from 0 to N-1. For example:

  27. 2. Properties of mod() • If x is evenly divisible by y (i.e no left-overs), mod(x,y) will return 0 • “mod” any number with another one “N”, the return-value will be a whole number from 0 to N-1. For example:

  28. 2. Properties of mod() • If x is evenly divisible by y (i.e no left-overs), mod(x,y) will return 0 • “mod” any number with another one “N”, the return-value will be a whole number from 0 to N-1. For example:

  29. Ex1. Even or Odd? • Prompt the user for a whole number, then display whether that number is even or odd. • Algorithm is rather straightforward! % prompt the user for whole number % mod the number by 2 % if the result is 1 % Display ‘odd’ % if the result is 0 % Display ‘even’ % if the result is something else % Display ‘ERROR’

  30. Ex2: Check for integers • Remember “Who Should Start?” % prompt how many players total totalPlayers = input('How many players (WHOLE number only): '); % generate the one who starts (0-max) startPlayer = ceil(rand*totalPlayers); % continue with game… fprintf('Player #%d will start.\n', startPlayer); • Since there are no error-check, the following can happen! Let’s add an error message when an float is entered!...

  31. Check for integers, algorithm %prompt user for total players %if invalid (negative, zero, or not integer) %error message %else %generate 1st player %continue with game

  32. Check for integers, code %prompt user for total players totalPlayers = input('How many players (WHOLE number only): '); % if mod( totalPlayers, 1 ) isn’t 0, totalPlayers isn’t a whole number Using mod() in your answer, what does it mean for a number to not-be-an-integer?

  33. Key Ideas • Vocabulary • Function call • Arguments • Collecting • Return-values • Versatile • New notions • Rounding up/down/ or w.r.t 0.5 • Generating random numbers • Generating 1 random float value • Manipulating it to desire random range wanted • Generating a zero/one to simulate false/true • Examples • Cement for stairs: ceil() • Time formatting: floor() • Temperature: rand() • Rocket: all of the above!!

  34. Key Ideas • mod() is a built-in function that calculates the remainder of a division • >> doc mod <enter> to see help window • Commonly used to check if a number is divisible by another. • In other word, mod can be used to check if a number is a multiple of another. • mod(.., 2) is used to check even/odd • mod(.., 1) is used to check whole/decimal number • mod(.., N) is used to check if a number is divisible by N

  35. Exam 1 • Review on Thursday • Exam on Friday in lab • ~10 multiple choice, true false, short answer questions • Programming problem • Open book, open note, open resource. Closed “other people”.

More Related