Post on 21-Dec-2015
CIS 101: Computer Programming and Problem Solving
Lecture 5Usman Roshan
Department of Computer Science
NJIT
Function files
Function FileInput 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 memoryspace accessibleby all scripts andfunctions
Local spacefor function A
Local spacefor 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:– Function Filename– 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 <boolean expression>
<commands>
else
<commands>
end
Max of two numbers
Max of two numbers
Loops
for k = f:s:t
<group of commands>
…
…
end
Loops
Loops
Loops
while <conditional expression>
<group of commands>
…
…
end
Loops
Loops
Nested loops
for k = 1:n
for h = 1:m
<group of matlab commands>
…
…
end
end
Loops
Loops
Loops
• break: terminates execution of loop• continue: goes to next iteration of loopfor k = 1:2:200
<commands>…continue<commands>…
end
stops execution and goes to next iteration
Loops
• break: terminates execution of loop• continue: goes to next iteration of loopfor k = 1:2:200
<commands>…break<commands>…
end
stops execution and exits loop