CIS 101: Computer Programming and Problem Solving Lecture 5 Usman Roshan Department of Computer Science NJIT
Function files Function File Input data Output
Function syntax function [output arguments] = function_name(input arguments) Example functions: function [A] = RectArea(x, y) function [V, S] = SphereVolArea(r)
Local and global variables So far ALL variables we have worked with have been global. This means they can be accessed and modified by any part of the program In functions variables are local by default (and global if they are defined as such)
Memory space Global memory space accessible by all scripts and functions Local space for function A Local space for function B
Defining and calling a function A function file must be saved before it can be used. The name of the file must be the same as the function name Examples: –FunctionFilename –function [A] = RectArea(x,y)RecArea.m –function[V, S] = SphereVolArea(r) SphereVolArea.m
Function for computing area of sphere
Area of sphere It won’t run if you click on the run button
Area of sphere The function is called from the command line…
Area of sphere Or the function can be called from a script.
Area of sphere Function output from script
Comparison between functions and scripts Both scripts and funtion files are saved with.m extension The first line in a function file is the definition line Function variables are local whereas script ones are global Function files can accept data through input arguments and can return data similarly When a function file is saved, the name of the file should be the same as the function’s.
Inline functions name = inline(‘math expression typed as a string’) name = inline(‘math expression’, arg1, …, argn) For example, double = inline(‘2*x’) defines a function that doubles the input. So double(10) = 20
Using inline to define area of sphere
Logical operators AND: if both are true result is true (1) OR: if either is true result is true (1) NOT: produces opposite of operand
Conditional statements if else end
Max of two numbers
Loops for k = f:s:t … end
Loops
while … end
Loops
Nested loops for k = 1:n for h = 1:m … end
Loops
break: terminates execution of loop continue: goes to next iteration of loop for k = 1:2:200 … continue … end stops execution and goes to next iteration
Loops break: terminates execution of loop continue: goes to next iteration of loop for k = 1:2:200 … break … end stops execution and exits loop