# How do I create a for loop in MATLAB?

11 392 views (last 30 days)

Show older comments

pedro marin
on 5 Mar 2012

Commented: Walter Roberson
on 15 Nov 2022 at 2:35

### Accepted Answer

Walter Roberson
on 5 Mar 2012

Edited: MathWorks Support Team
on 9 Nov 2018

A basic for loop in MATLAB is often used to assign to or access array elements iteratively. For example, let’s say you have a vector A, and you want to simply display each value one at a time:

A = [3 6 9 4 1];

for i = 1:length(A)

disp(A(i))

end

For more examples using for loops, see:

##### 5 Comments

Walter Roberson
on 21 Sep 2022

Edited: Walter Roberson
on 21 Sep 2022

A = randi([0 9], 1, 20)

%then output in groups of 5 in vectorized form

reshape(A, 5, []).'

%or if you need a for loop

for K = 1 : 5 : numel(A); disp(A(K:K+4)); end

Matters get more complicated if the number of entries in the array is not a multiple of the number of columns you want to use. For example,

A = randi([0 9], 1, 23)

for K = 1 : 5 : numel(A); disp(A(K : min(end,K+4))); end

### More Answers (6)

Jan
on 5 Mar 2012

You can get help from the documentation of Matlab:

doc for

help for

There you find examples and explanations.

##### 1 Comment

Jan Afridi
on 29 Sep 2017

For loop repeat itself for a given number of input. The syntax for “For Loop Matlab” is

for variable = expression

Program Statement

end

In the above syntax, the expression has one of the following forms.

Initial value : Final value

for x = 1:10

fprintf('value of x: %d\n', x);

end

Initial value : Step : Final value

for x = 1:2:10

fprintf('value of x: %d\n', x);

end

Value Array

for x = [1 4 6 8 90]

disp(x)

end

##### 0 Comments

mohamed mohamed
on 6 Feb 2021

Edited: Walter Roberson
on 31 Jul 2021

for x = 1:10

fprintf('value of x: %d\n', x);

end

##### 0 Comments

Narasimman P
on 30 Jul 2021

for a=1:10

end

##### 2 Comments

Walter Roberson
on 17 Nov 2021

The code posted by @Narasimman P is a completely valid for loop, just one that does not do anything inside the loop. All it does is count from 1 to 10 internally. After the loop, two things will have changed:

- Time will have elapsed, which could be important if you are waiting for something to happen
- The loop control variable 'a' will have the same value as it was last assigned, so in this case after the loop 'a' will have the double precision value 10 .

disp('before')

whos

disp('starting loop')

for a=1:10

end

disp('after')

whos

So there has been output: the variable a did not exist before, and after the loop it does exist.

Manan Shah
on 8 May 2022

Edited: Torsten
on 8 May 2022

for i = 0:8 ;

a = pow10 (i);

disp a(i);

end

##### 1 Comment

Walter Roberson
on 8 May 2022

disp a(i)

would mean the same thing as

disp('a(i)')

You probably want

disp(a(i))

Iosif
on 13 Nov 2022 at 11:37

Edited: Iosif
on 13 Nov 2022 at 11:41

D=input ('Βαθος νερου σε m ')

W=input ('Βαρος ανα μοναδα μηκους της γραμμης αγκυρωσης στο νερο σε N/m ')

Hex=input ('εξωτερικη φορτηση σε kn ')

dx=input ('οριζοντια μετατοπιση σε m ')

if dx/D>=0.3 && dx/D<=0.6

else

disp ('Δωσε διαφορετικη τιμη για το dx')

dx=input ('οριζοντια μετατοπιση σε m ')

end

I want to make my programm go to if after else and run that lines again until if line is satisfied

##### 1 Comment

Walter Roberson
on 15 Nov 2022 at 2:35

while ~isnumeric(dx) || ~isscalar(dx) || dx/D<0.3 || dx/D>0.6

disp ('Δωσε διαφορετικη τιμη για το dx')

dx=input ('οριζοντια μετατοπιση σε m ')

end

### See Also

### Categories

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!