How do I create a for loop in MATLAB?

I am completely lost in for loops, I just don't get it. The book and my professor haven't helped much. Where can I get help?

2 commentaires

Abderrahmane Walid AISSANI
Modifié(e) : Walter Roberson le 14 Mai 2017
hi I am trying to create several variables using the for loop
% for k=1:1:10
tab_k = csvread('');
end
in fact the code is wrong but I want to iterate the "k" in the name of the variable but I can't find how to do that .
thank you .

Connectez-vous pour commenter.

 Réponse acceptée

Walter Roberson
Walter Roberson le 5 Mar 2012
Modifié(e) : MathWorks Support Team le 9 Nov 2018

12 votes

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 commentaires

Patrik Ek
Patrik Ek le 9 Avr 2015
Modifié(e) : Patrik Ek le 9 Avr 2015
As far as I know the for-loop is even more excellent than what says in this text. As far as I know the matlab for-loop works similar to the for_each-loop that can be seen in many programming languages these days, or maybe the range-for in c++11. For example is this possible,
a = aObjArray;
for k = a
a.modify();
end
This is not really clear from the documentation, so I thought this would be a valuable comment.
帅 赵
帅 赵 le 11 Juil 2021
but it doesn't work
Not sure why it is said that it doesn't work?
A = [3 6 9 4 1];
for i = 1:length(A)
disp(A(i))
end
3 6 9 4 1
Jake Dalrymple
Jake Dalrymple le 21 Sep 2022
This is very helpful! How could you display these values in rows of 5 rather than just one value per row?
A = randi([0 9], 1, 20)
A = 1×20
1 9 5 8 6 2 6 2 2 0 3 2 1 4 7 3 9 7 2 6
%then output in groups of 5 in vectorized form
reshape(A, 5, []).'
ans = 4×5
1 9 5 8 6 2 6 2 2 0 3 2 1 4 7 3 9 7 2 6
%or if you need a for loop
for K = 1 : 5 : numel(A); disp(A(K:K+4)); end
1 9 5 8 6 2 6 2 2 0 3 2 1 4 7 3 9 7 2 6
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)
A = 1×23
9 6 1 5 7 4 8 4 8 4 4 5 8 5 3 6 9 2 1 4 8 9 9
for K = 1 : 5 : numel(A); disp(A(K : min(end,K+4))); end
9 6 1 5 7 4 8 4 8 4 4 5 8 5 3 6 9 2 1 4 8 9 9

Connectez-vous pour commenter.

Plus de réponses (10)

Jan
Jan le 5 Mar 2012
You can get help from the documentation of Matlab:
doc for
help for
There you find examples and explanations.

1 commentaire

Meenakshi Bhardwaj
Meenakshi Bhardwaj le 19 Juil 2018
Thanks so much. Finally, I understood what is for loop.

Connectez-vous pour commenter.

Jan Afridi
Jan Afridi le 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
To learn more about in detail visit this link For Loop Matlab
mohamed mohamed
mohamed mohamed le 6 Fév 2021
Modifié(e) : Walter Roberson le 31 Juil 2021
for x = 1:10
fprintf('value of x: %d\n', x);
end
value of x: 1 value of x: 2 value of x: 3 value of x: 4 value of x: 5 value of x: 6 value of x: 7 value of x: 8 value of x: 9 value of x: 10
Kartick
Kartick le 11 Jan 2023
Modifié(e) : Kartick le 11 Jan 2023
There are 4 type of loops: while, for, if and case.
For loop :
Eg: you have your robot whom you wish to give command to walk 100steps. The command will be
for steps=1:100
end
disp(steps)
100
The robot will go 100steps and stop and output will be displayed as 100 after completion.
For loop is used to solve many mathematical problems like factorials etc.

1 commentaire

Walter Roberson
Walter Roberson le 11 Jan 2023
Computer Scientists use the term "control statement" for code structures that will execute selectively exactly zero or one time. Computer Scientists use the term "loop" for code structures that have the potential to execute more than one time. "if" and "case" are control structures but are not loops.
If you imagine the execution point as starting from the "top" and falling downward, then "if" and "case" only ever have the execution point continuing to fall downwards, whereas "for" and "while" in general require pumping the execution point back up again.

Connectez-vous pour commenter.

Narasimman P
Narasimman P le 30 Juil 2021
for a=1:10
end

2 commentaires

Ealam Yassin
Ealam Yassin le 17 Nov 2021
no output
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:
  1. Time will have elapsed, which could be important if you are waiting for something to happen
  2. 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')
before
whos
disp('starting loop')
starting loop
for a=1:10
end
disp('after')
after
whos
Name Size Bytes Class Attributes a 1x1 8 double
So there has been output: the variable a did not exist before, and after the loop it does exist.

Connectez-vous pour commenter.

Manan Shah
Manan Shah le 8 Mai 2022
Modifié(e) : Torsten le 8 Mai 2022
for i = 0:8 ;
a = pow10 (i);
disp a(i);
end

2 commentaires

disp a(i)
would mean the same thing as
disp('a(i)')
You probably want
disp(a(i))
Using
disp(a(i))
would necessitate addressing the zeroth and other nonexistent elements of the scalar variable a.
Besides the fact that this is obviously untested nonworking code, I question why what should rightly be a very simple example needs to include undisclosed user-defined functions.

Connectez-vous pour commenter.

Iosif
Iosif le 13 Nov 2022
Modifié(e) : Iosif le 13 Nov 2022
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 commentaire

while ~isnumeric(dx) || ~isscalar(dx) || dx/D<0.3 || dx/D>0.6
disp ('Δωσε διαφορετικη τιμη για το dx')
dx=input ('οριζοντια μετατοπιση σε m ')
end

Connectez-vous pour commenter.

Thanh
Thanh le 4 Nov 2023

0 votes

I am using matlap 2017b but I no find simulation pacing options . I need some help .
hawra
hawra le 12 Déc 2024
Modifié(e) : Walter Roberson le 12 Déc 2024
clc
clear all
close all
s=0
n=1
for 1:0.5:100
s=s+n;
end
disp (s)

1 commentaire

Walter Roberson
Walter Roberson le 12 Déc 2024
You are missing a variable name and "=" in the "for" loop.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by