if
statementsfprintf
: the formatted printing functionfunction if-end fprintf argument return value function definition function declaration function body
The simplest way to define you own function in Matlab is to write it in a text file whose filename matches the function name, with a '.m.' suffix. For example, we can define a faren2celsius
function by creating a text file faren2celsius.m
with the following contents
function tempC = faren2celsius(tempF) % convert celsius temperature to farenheit % input argument tempC % output value tempF tempC = 5/9*(tempF-32); end
Note the following:
function
and ends with end
. faren2celsius
will take one argument (or input variable) tempF
and produce one return value (or output variable) tempC
. help faren2celsius
.end
. Here the function body is a single line of code that calculates tempC
from tempF
.
That was an exceedingly simple function. Let's write the inverse function celsius2faren
with a few more bells and whistles. Specifically, let's print a warning message if the input temperature is below absolute zero, -273.15 C.
function tempF = celsius2faren(tempC) % convert temperature in Celsius to Farenheit if tempC < -273.15 fprintf('%d C is below -273.15, i.e. absolute zero', tempC); end tempF = 9/5*tempC + 32; end
This code includes an if
statement that checks for temperatures below absolute zero. If the condition of the if
statement evaluates to true, then the body of the if
statement will be executed. If it evaluates to false, the body will be skipped, and execution will resume immediately after the end
. Thus here the warning message will be printed only if tempC
is less than -273.15.
The warning message is printed using the formatted print function fprintf
. fprintf
takes a variable number of arguments. The first argument is always the format string
. The format string is simply a message to be printed with a number of slots into which values of variables will be substituted. The slots are marked with percent signs %
, and following the percents signs is a letter code that tells Matlab what type of variable to expect for the slot. Here %d
tells Matlab to expect a decimal-valued variable (i.e. a floating-point number). After the format string, the remaining arguments to fprintf
are the variables whose values you want substituted into those slots.