Discrete Mathematics factor(x) gcd(x,y) greatest common denominator lcm(x) lowest common multiple rats(x) represent x as a fraction factorial(x) primes(x) isprime(x)
Trigonometric Functions sin(x)sine cos(x)cosine tan(x)tangent asin(x)inverse sine sinh(x)hyperbolic sine asinh(x)inverse hyperbolic sine sind(x)sine with degree input asind(x)inverse sin with degree output
Data Analysis max(x) min(x) mean(x) median(x) sum(x) prod(x) sort(x)
Random Numbers rand(x) Returns an x by x matrix of random numbers between 0 and 1 rand(n,m) Returns an n by m matrix of random numbers
Computational Limits MATLAB’s computational range on most computers is: 10 -308 10 308 When you divide by 0, the computer returns Inf
Function specification function = ( ) % The names of variables in functions are only visible in the function. Scripts are used for the top level call to the functions. Functions must be saved in an M-file of the same name as the function. (For now in the working directory.) (Actually filename is the name of the function!)
A simple example Suppose I have a cylinder, and I want the volume: Going to write a function, called cyl, which will input the radius and the height of the cylinder and produce the desired volume h r rh vol cyl
Function cylinder Write function function volume = cyl(radius, height) % CYLINDER computes volume of circular cylinder % given radius and height % Use: % vol=cylinder(radius, height) % volume=pi.*radius^2.*height; % why the dots? Save as m-file with function name (cyl.m) Type help cyl
M-function Workspace Each time an m-function is executed, a new workspace is created just for that instance All variables except arguments and returned variable are defined only in the function workspace Function variables are not defined in Base workspace, nor are Base variables defined in function workspace Function workspace is destroyed when function completes Function variables are “hidden” from world (and from accidental misuse or alteration)
Restrictions, style Functions do not use INPUT or DISP or any real input output unless specified in the assignment or for debugging Semi colons – use semi colons unless you need to see step by step results when debugging Can’t save and run a function. Why not? Because doesn’t know the calling environment or context.
Test Cylinder Function Create a script: test_cyl Rad = Input(‘Radius:’) Disp(rad) % note different names Ht = Input(‘Height:’) Disp(ht) Cyl(rad,ht) Try with vectors.
How are M-Functions Located? Sometimes it is important to know how Matlab will look for an m- function, especially if two have the same name… 1. First checks current workspace 2. is it a built-in Matlab function? 3. is it a sub-function in the current function? 4. is it a private function? 5. is it in the current directory? 6. is it in the Matlab path, searching from the current directory down? The first instance is used and any others are ignored This can cause problems if you don’t understand… It can also let you replace functions with different versions
Multiple Values Functions M-functions Can Return Multiple Values The returned variable from an M-function can be a scalar or an array (even a cell array) M-functions can use the [ ] constructor to return an array formed from multiple scalar values
Multiple Value Return Lets update our cylinder function to return the area and the volume: function [area volume] = cylAV(radius, height) % CYLINDER computes volume of circular cylinder % given radius and height % Use: % [ar, vol] =cylinder(radius, height) % volume=pi.*radius^2.*height; area = 2.* pi.* height + 2.* pi.*r.*r;