This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


Terminate block of code, or indicate last array index




end 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 end is paired with the closest previous unpaired for, while, switch, try, if, or parfor and serves to delimit its scope.

end also marks the termination of a function. Although it is sometimes optional, use end for better code readability. If your function contains one or more nested functions, then you must terminate every function in the file, whether nested or not, with end. This includes primary, nested, private, and local functions.

If your script contains local functions, then you must terminate every local function in the file with end.

The end function also serves as the last index in an indexing expression. In that context, end is the same as size(X,k) when used as part of the kth index into array X. Examples of this use are X(3:end) to select the third through final elements of the array, and X(1,1:2:end-1) to select all even elements of the first row, excluding the last element. When using end to grow an array, as in X(end+1)=5, make sure X exists first.


This example shows end used with the for and if statements.

for k = 1:n
    if a(k) == 0
        a(k) = a(k) + 2;

In this example, end is used in an indexing expression.

A = magic(5)

A =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

B = A(end,2:end)

B =

    18    25     2     9

More About

collapse all

Tall Array Support

This function fully supports tall arrays. For more information, see Tall Arrays.


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

See Also

| | | | | | |

Introduced before R2006a

Was this topic helpful?