Main Content

Scripts vs. Functions

This topic discusses the differences between scripts and functions, and shows how to convert a script to a function.

Both scripts and functions allow you to reuse sequences of commands by storing them in code files. Scripts are the simplest type of code file, since they store commands exactly as you would type them at the command line. However, functions are more flexible and more easily extensible.

Create a script in a file named triarea.m that computes the area of a triangle:

b = 5;
h = 3;
a = 0.5*(b.*h)

After you save the file, you can call the script from the command line:

triarea
a =
    7.5000

To calculate the area of another triangle using the same script, you could update the values of b and h in the script and rerun it. Each time you run it, the script stores the result in a variable named a that is in the base workspace.

However, instead of manually updating the script each time, you can make your code more flexible by converting it to a function. Replace the statements that assign values to b and h with a function declaration statement. The declaration includes the function keyword, the names of input and output arguments, and the name of the function.

function a = triarea(b,h)
a = 0.5*(b.*h);
end

After you save the file, you can call the function with different base and height values from the command line without modifying the script:

a1 = triarea(1,5)
a2 = triarea(2,10)
a3 = triarea(3,6)
a1 =
    2.5000
a2 =
    10
a3 =
     9

Functions have their own workspace, separate from the base workspace. Therefore, none of the calls to the function triarea overwrite the value of a in the base workspace. Instead, the function assigns the results to variables a1, a2, and a3.

Related Topics

External Websites