Updated March 8, 2023
Introduction to MATLAB Return
In computer programming, a return statement is defined to be executed to return the control to the parent sub routine from the invoking subroutine. The flow of execution resumes at the point in the program code immediately after the instruction, which is called its return address, and the running scope of the code can be defined as the called subroutine. In the absence of a parent subroutine, the return statement returns the control of execution to the command prompt. In this topic, we are going to learn about Matlab return.
Syntax
The return command redirects the control to invoking script or function instead of letting MATLAB execute the rest of the consecutive commands in the called subroutine. MATLAB redirects the control nothing but to the command prompt when a script or a function contains a return, and it is not being called from any invoking program.
For both cases, the syntax is a single command instruction, i.e., return
Use cases for a return statement
Return command is used in different conditions based on the technical requirement of the program. It can also be used for data validity checking functionality. Some of the important use cases are discussed below.
1. Bringing control to keyboard
If a program needs the user to take action on the occurrence of some specific condition, the current subroutine or function can be called directly without being triggered by any parent sub routine, and the flow of control returns to the command prompt or the keyboard when the command ‘return’ is executed.
Example:
The below code snippet defines a function findindex() where the return command is used with 2 purposes:
- Performing validation checking on input data
- Returning control to keyboard once the match is found
%Defining findindex() , the called subroutine
function Index = findindex(inputval,referenceArray)
%Using return statement for data validation
Index = NaN;
if inputval< 0
disp('invalid input')
return
end
%Using return statement on achieving the program objective i.e. finding matching element
for Index = 1:length(referenceArray)
if referenceArray(Index) == inputval
return;
else
disp('Match not found')
end
end
endfunction
Case 1: The return statement is executed on a negative input being given
findindex(-15,[12 34 54 15 32])
Output:
Case 2: The return statement is executed on match to the input data is found
findindex(15,[12 34 54 15 32])
Output:
2. Redirecting execution flow to the parent (calling) subroutine from the called subroutine
If the program needs to reroute the flow of control to the calling subroutine or the calling function on the occurrence of some specific condition. It can be carried out when its parent subroutine triggers the current in the current subroutine or function, and the command ‘return’ is executed.
Example:
The below code snippet defines a function findindex() within another function callfunction() where the return command is used with 2 purposes:
- Performing validation checking on input data of findindex() function
- Returning control to callfunction() from findfunction() return command
%Defining findindex() , the called subroutine
function Index = findindex(inputval,referenceArray)
%Using return statement for data validation Index = NaN;if inputval< 0 returnend
%Using return statement on achieving the program objective
for Index = 1:length(referenceArray) if referenceArray(Index) == inputval return; elsedisp('Match not found')endendendfunction
%Defining callfunction() , the calling subroutine
function resultfunc = callfunction(inputval,referenceArray)result=findindex(inputval,referenceArray); if isnan(result)disp('Match is not found.') elsedisp(['Match is found at ' num2str(result)]) endendfunction
Case 1: The return statement is executed on a negative input being given
callfunction(-12, [10 21 14 15 20 12 20])
Case 2: The return statement is executed on match to the input data is found
callfunction(12, [10 21 14 15 20 12 20])
Output:
3. Usage of return and continue statement in a loop
The program can have the flexibility to decide on which condition the flow of control should be rerouted to its calling sub routine or the command prompt and on which condition will force the flow to stay in the current system.
Example:
The below code snippet defines a function findindex() within another function callfunction() where the return command is used with 2 purposes:
- Performing validation checking on input data of findindex() function
- Returning control to callfunction() from findfunction() return command when the match is found and make the flow stay within the loop using the command ‘continue’ when the matched element is not found.
Example:
%Defining findindex()
function Index = findindex(inputval,referenceArray)
Index = NaN;
if inputval< 0
return
end
%Beginning of the loop
for Index = 1:length(referenceArray)
if referenceArray(Index) == inputval
disp('Executing return statement')
return ;
else
disp('Executing continue statement')
continue;
end
end
endfunction
Case 1: The return statement is executed on a negative input being given
findindex(-15,[12 34 54 15 32])
Output:
Case 2: The return and continue statement execution based on finding matched or non-matched element
findindex(15,[12 34 54 15 32])
Output:
Advantages of Matlab return
Using a return statement prevents the execution of unwanted functionalities once the desired condition is satisfied. As a result, it improves code quality and optimizes the code execution. As it reduces the number of instructions to be executed, it also reduces the execution time for the program. Thus it
makes the execution faster and results in improving the performance. Use of return statement in association with ‘continues’ statement provides flexibility to the program to decide whether to reroute the flow of control or keep it running within the current scope of the code.
Additional note
While using return within conditional blocks, such as if or switch, or within loop control statements, such as, for or while, the programmer needs to be careful. In MATLAB, when the control flow reaches a return statement in a conditional block, it just exits the loop and exits the script or function in which the return command is executed. Hence directly, it returns control to the invoking subroutine or commands prompt.
In MATLAB, it is not supported to return values using the return statement. To send a return value, it is required to set the value of each ‘out’ arg. Functions may return more than one argument as return values.
Recommended Articles
This is a guide to Matlab return. Here we discuss the Use cases for the return statement along with the examples, cases and outputs. You may also have a look at the following articles to learn more –