Terminate block of code or indicate last array index





end is a keyword that terminates for, while, switch, try, if, and parfor statements. Without an end statement, for, while, switch, try, if, and parfor wait for further input. Each instance of end pairs with the closest previous unpaired for, while, switch, try, if, or parfor statement.


end also terminates a declared function and is required when:

  • A function in a file contains one or more nested functions, in which case, every function in the file must be terminated with an end statement.

  • A local function is within a function file, and all other local functions are terminated with an end statement.

  • A local function is within a script file.


end also represents the last index of an array. For example, X(end) is the last element of X, and X(3:end) selects the third through final elements of X.


collapse all

Use end to close an if statement and a for loop. The first instance of end pairs with the if statement, and the second pairs with the for statement.

a = [0 0 1 1 0 0 0 1 0];
for k = 1:length(a)
    if a(k) == 0
        a(k) = 2;

Use end to terminate a switch block.

choice = 1;

switch choice
    case 1
        disp('Vote for no. 1')
    case 2
        disp('Vote for no. 2')
Vote for no. 1

Declare a function in a file named average.m and save it in the current folder. Use end to terminate the function.

function ave = average(x)
    ave = sum(x(:))/numel(x); 

The function accepts an input array, calculates the average of its elements, and returns a scalar. Call the function from the command line.

z = 1:99;
ave = average(z)
ave =


Create a vector X.

X = 1:15;

Access the fifth through final elements of X.

ans = 1×11

     5     6     7     8     9    10    11    12    13    14    15

Access the odd-index elements of X.

ans = 1×8

     1     3     5     7     9    11    13    15

Access the last row of a matrix A using end.

A = magic(3)
A = 3×3

     8     1     6
     3     5     7
     4     9     2

B = A(end,:)
B = 1×3

     4     9     2


  • Classes can overload the end function to implement specialized behavior. For more information, see end as Object Index.

  • If an array X already exists, you can use end to grow the array. For example, X(end+1) = 5 increases the length of X by 1 and adds a new element to the end of X.

  • Although end is sometimes optional in a function file, use it for better code readability.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced before R2006a