Download presentation
Presentation is loading. Please wait.
Published bySandra Gardner Modified over 9 years ago
1
Library Functions... 1.Old functions 2.Vocabulary 3.Rounding numbers 4.Generating random numbers 5.mod() 6.Properties of mod() 7.Ex1: even or odd? 8.Ex2: error when not a whole number 1
2
1. Remember these functions? clc clear sin(), sind() … sqrt(), abs() … input(), fprintf(), disp() MATLAB’s Core System has ~2300 functions This doesn’t include any of the toolboxes 2
3
But what is a function? A function is like a box with holes in it. 3 Input Output The _________ function Magic sinsqrtfloorrandbazingawhy
4
2. Official vocabulary variable = functions_name( argument list ); Example: hypotenuse = sqrt(a^2+b^2); 4 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 is “passing” inputs to the function. 1. MATLAB “calls upon the execution” of sqrt() 2. MATLAB “passes” the result of a^2+b^2” 3. MATLAB “collects” the “return-value”
5
Various uses While the function’s name is ALWAYS needed, 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. 5
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); 6
7
Rounding functions Rounding floats to integer *w.r.t = with respect to 7 FunctionDefinitionsExamples 2.45312.56-6.67 round() Rounds *w.r.t 0.5__?__13-7 ceil() Rounds towards +infinity3__?__-6 floor() Rounds towards -infinity212__?__ + - NEW
8
Examples 8 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 Civil Eng.
9
Examples 9 depth width height Civil Eng. Step2
10
Examples 10 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. Civil Eng.
11
Try 11 This 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 Tonight!
12
Example2 12 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 13 rand Generates one float between 0 and 1 both excluded. rand(n) Generates a matrix with n^2 floats between 0 and 1 both excluded. (used in 2 weeks from now) rand(n,m) Generates an n-row by m-column matrix with floats between 0 and 1 both excluded. (used in 2 weeks from now)
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. 14 0 1 k 2 3 k 0 1
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. 15 0 1 k 0 5 k
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; 16 ? ? 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_______________________; 17 15 20 k1 -5.5 5.5 k2
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) 18
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 = ____________; 19
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... 20 06 () 0.51.52.53.54.55.5 0123456
21
Rounding functions 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] 21 FunctionDefinitionsExamples 2.45312.56-6.67 round() Rounds *w.r.t 0.5__?__13-7 ceil() Rounds towards +infinity3__?__-6 floor() Rounds towards -infinity212__?__ + - NEW
22
1. Modulus The modulus-function calculates the remainder of a long division >> doc mod 22
23
1. Modulus The modulus-function calculates the remainder of a long division >> doc mod For example: 23 >>result = 77/3 result = 25.6667 >>result = mod(77,3) result = 2 >> 7 2 5 3 -6 1 7 -1 5 2
24
1. Modulus The modulus-function calculates the remainder of a long division >> doc mod For example: 24 >>result = 77/3 result = 25.6667 >>result = mod(77,3) result = 2 >> mod(..) is a function that REQUIRES TWO ARGUMENTS. ( mod(77) is an invalid statement…)
25
1. Modulus The modulus-function calculates the remainder of a long division >> doc mod For example: 25 >>result = 77/3 result = 25.6667 >>result = mod(77,3) result = 2 >> 7 2 5 3 -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: 26 Mod by 2 mod(2,2)0 mod(3,2)1 mod(4,2)0 mod(5,2)1 mod(6,2)0 mod(15,2)? Mod by 3 mod(3,3)0 mod(4,3)1 mod(5,3)2 mod(6,3)0 mod(7,3)1 mod(26,3)? Mod by 5 mod(2,5)0 mod(5,5)0 mod(6,5)1 mod(7,5)2 mod(8,5)3 mod(9,5)4 mod(10,5)?
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: 27 Mod by 2 mod(2,2)0 mod(3,2)1 mod(4,2)0 mod(5,2)1 mod(6,2)0 mod(15,2)? Mod by 3 mod(3,3)0 mod(4,3)1 mod(5,3)2 mod(6,3)0 mod(7,3)1 mod(26,3)? Mod by 5 mod(2,5)0 mod(5,5)0 mod(6,5)1 mod(7,5)2 mod(8,5)3 mod(9,5)4 mod(10,5)?
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: 28 Mod by 2 mod(2,2)0 mod(3,2)1 mod(4,2)0 mod(5,2)1 mod(6,2)0 mod(15,2)? Mod by 3 mod(3,3)0 mod(4,3)1 mod(5,3)2 mod(6,3)0 mod(7,3)1 mod(26,3)? Mod by 5 mod(2,5)2 mod(5,5)0 mod(6,5)1 mod(7,5)2 mod(8,5)3 mod(9,5)4 mod(10,5)?
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’ 29
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! 30 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 1 st player %continue with game 31
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 32 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!! 33
34
Key Ideas mod() is a built-in function that calculates the remainder of a division >> doc mod 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 34
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”. 35
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.