Categories
2. Control Statements

Nested Loop in Matlab

Nested Loop is a compound statement in Matlab where we can place a loop inside the body of another loop which nested form of conditional statements. As you have known that, Matlab allows you to combine some compound statements like IF, FOR & WHILE inside other compound loops. This nesting loop is called a nested loop in Matlab. You should note that you can put one type of loop inside another type of loop.

Generally, a loop is a repetitive code part that efficiently allows you to execute the conditional statements a specific number of times you need. Thus, a Nested Loop defines a concept to use an inner loop within the body of the outer loop in the code statements. When executed the loop gets triggered passes to the outer loop then the inner again. This process continues until the outer loop fulfills the condition and this is interrupted by the break statement which further proceeds to provide the required result.

Syntax:

Following is the syntax of the nested loop in Matlab with ‘For’ loop statement:

for m = 1:i
for n = 1:i
[statements] end
end

Here ‘I’ represents the number of loops you want, to run in the nested loop and the statements define the condition or numeric expression of the code. Also, the nested loop for WHILE loop statement in Matlab:

while [expressions1] while [expressions] statements
end
end

Flowchart

The following figure defines the flow chart for Nested Loop in Matlab:

How Nested Loop Works in Matlab?

As per the above syntax, the following is an example of a nested loop in Matlab.

a = 0;
for m = 1:5
for n = 1:5
a = a+m+n;
end
end

But when we look at the above loop structure in Mathematics term then, it seems that we are calculating the sum as m=15 n=1(m + n). This can be calculated to give the below result:

As we have taken i=5, then

i2(i + 1 ) = 52 * 6 = 150

This is what you get in MATLAB:

a = 0;
for m = 1:5
for n = 1:5
a = a + m + n;     >>>>>150
end
end

How to EXIT a Nested FOR Loop?

Inappropriately, there is no smart method in my knowledge to exit every nested loop and run the remaining code part. Generally, we need to echo the condition each time to exit the FOR loop. You can view the following syntax:

for m = 1:i
for n = 1:i
[conditional statements] if conditionforbreak
break
end
end
if conditionforbreak
break
end
end

Suppose if we take the previous example to implement break to exit the loop, then we will get:

a = 0;
for m = 1:5
for n = 1:5
a = a+m+n;
conditionforbreak = a>100;
if conditionforbreak
break
end
end
if conditionforbreak
end
end

This provides the below result in Matlab:

If a = 109 or greater value than 100 then it will put a break and exit the loop. Note that ‘a’ does not repeat in a single increase, so it assures that the next repeat of ‘a’ is not 101.

Examples of Nested Loop in Matlab

For example to use the nested loop we can write the following code to show all the prime numbers from 1 to 50. We need to create a script file and code the following nested loop statements.

for m=2:50
for n=2:50
if (~mod(m,n))
break;
end
end
if(m>(m/n))
fprintf(‘%d is prime \n’, m);
end
end

When you execute the above file you will get the result below:

Output:

Nested Loop in Matlab-1.1

Here, in Matlab, we can execute the code inside the iterative statements. In this code, we have nested the IF loop in the body of the statement. We can continue this as many times as required. Likewise, we can nest FOR loop inside other FOR loops and the WHILE loop can also be executed in the form of a nested loop to write the statements.

% to create a multiplication table and the result is saved as X.

rows 1:10
cols 1:10
for a = rows
for b = cols
A(a,c) = a*b;
end
end

We need to remember that along with any statement that is put in an inner FOR loop, a nested FOR loop is run once for each value of the surrounding loop. Talking about the above code script, the outside loop i.e. the loop for ‘a = rows’ is executed 10 times every time for each value of a. On the other hand, every time the inside loop i.e. the loop for ‘b = cols’ modifies 10 different entries, one with respect to each value of ‘b’ in the X matrix. Finally, we will get the output of total 100 i.e. ‘=10*10’ entries or values in table X which is updated.

Indentation

Reliable use of indentation allows creating a readable code especially while using nested IF and FOR loops together. We can use the smart Indent feature provided by MATLAB editor so that we can confirm the code added is valid for the nested loop statement, like using (TEXT ->SMART INDENT). If the indentation is not proper then, it may hide any errors or problems.

Avoid or Stop a Nested Loop with A Break Statement

A BREAK statement provides logical output only inside a loop. We should also understand to know the BREAK statement is used only with the innermost loop that encloses a BREAK statement. In Matlab, there are several ways of creating a FOR loop. Let us discuss a simple syntax with an example to write the loop:

for j = 1:k  % k is the number of loops that we want
conditions;  % the condition to be fulfilled for loop to execute it
end

Now let us create the loop:

for j = 1:5
j
end

Output:

Nested Loop in Matlab-1.2

Leave a Reply

Your email address will not be published. Required fields are marked *