lettura simple

How to make a function in Octave

In this lesson I'm going to show you how to create a function in Octave.

What is a function? It is a piece of code that can be executed when needed. The function code is separate from the main program. It can be in the same file or in a different file. Functions are very important in programming. They make the code of a program more concise and compact.

The general syntax for defining a function is as follows

function [y1, y2, ... ] = namefunction([x1,x2,...])
code of the function
endfunction

  • The terms x1,x2... are the variables (input data) that the function receives as input from the call.
  • The terms y1,y2... are the variables (output data) that the function returns as output.

After defining a function, you can call and execute the function from different points in the program.

I'll give you a practical example

Type a script with any calculation operation. For example with 1;

1;

Note. If you start the script by typing function... the Octave interpreter thinks it is a function file rather than a script.

Then you need to create a named function average() that receives as input two numerical data x1 and x2 and returns as output the arithmetic mean y

1;

function y = average(x1,x2)
y = (x1+x2)/2;
endfunction

Now add in the program code a call to the average() function with two input values 2 and 4

1;

function y = average(x1,x2)
y = (x1+x2)/2;
endfunction

m=average(2,4);
disp(m);

The function receives the two input values x1=2 and x2=4, calculates the average y=(2+4)/2 and outputs the result y=3

Therefore, the program's output is 3

3

Now add a second call to the function with two different numbers.

For example, 4 and 6

1;

function y = average(x1,x2)
y = (x1+x2)/2;
endfunction

m=average(2,4);
disp(m);
m=average(4,6);
disp(m);

In this case the program calls the average() function twice from two different places.

  1. The first time it sends the values 2 and 4, receiving 3 as response.
  2. The second time it sends the values 4 and 6, receiving 5 as a response.

Therefore, the output of the program is

3
5

A function can also return multiple values in output.

For example, the function [y1,y2] = pwr(x) receives a numeric value (x) as input and produces two values as output.

1;

function [y1, y2] = pwr(x)
y1=x^2;
y2=x^3;
endfunction

[y1,y2]=pwr(2);
disp(y1);
disp(y2);

The function call sends x=2 as an input value.

The pwr() function calculates the square y1=4 and the cube y2=8 returning two output results.

4
8

If you want to anticipate the closure of the function and the return of the results, use the return statement.

Here is a practical example.

1;

function [y1, y2] = pwr(x)
if x<0
y1=0
y2=0
return
endif
y1=x^2;
y2=x^3;
endfunction

[y1,y2]=pwr(-2);
disp(y1);
disp(y2);

The return statement ends the function execution and returns the results y1=0 and y2=0 if the input value is negative.

In this case the output of the function is

0
0




Report a mistake or post a question




FacebookTwitterLinkedinLinkedin