How do I create a for loop in MATLAB?
5,636 ビュー (過去 30 日間)
古いコメントを表示
pedro marin
2012 年 3 月 5 日
編集済み: Walter Roberson
2024 年 12 月 12 日 19:50
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 件のコメント
Abderrahmane Walid AISSANI
2017 年 5 月 14 日
編集済み: Walter Roberson
2017 年 5 月 14 日
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 .
採用された回答
Walter Roberson
2012 年 3 月 5 日
編集済み: MathWorks Support Team
2018 年 11 月 9 日
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 件のコメント
Jake Dalrymple
2022 年 9 月 21 日
This is very helpful! How could you display these values in rows of 5 rather than just one value per row?
Walter Roberson
2022 年 9 月 21 日
編集済み: Walter Roberson
2022 年 9 月 21 日
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
その他の回答 (10 件)
Jan
2012 年 3 月 5 日
You can get help from the documentation of Matlab:
doc for
help for
There you find examples and explanations.
1 件のコメント
Jan Afridi
2017 年 9 月 29 日
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 件のコメント
mohamed mohamed
2021 年 2 月 6 日
編集済み: Walter Roberson
2021 年 7 月 31 日
for x = 1:10
fprintf('value of x: %d\n', x);
end
0 件のコメント
Kartick
2023 年 1 月 11 日
編集済み: Kartick
2023 年 1 月 11 日
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)
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 件のコメント
Walter Roberson
2023 年 1 月 11 日
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.
Narasimman P
2021 年 7 月 30 日
for a=1:10
end
2 件のコメント
Walter Roberson
2021 年 11 月 17 日
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
2022 年 5 月 8 日
編集済み: Torsten
2022 年 5 月 8 日
for i = 0:8 ;
a = pow10 (i);
disp a(i);
end
2 件のコメント
Walter Roberson
2022 年 5 月 8 日
disp a(i)
would mean the same thing as
disp('a(i)')
You probably want
disp(a(i))
DGM
2023 年 11 月 4 日
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.
Iosif
2022 年 11 月 13 日
編集済み: Iosif
2022 年 11 月 13 日
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 件のコメント
Walter Roberson
2022 年 11 月 15 日
while ~isnumeric(dx) || ~isscalar(dx) || dx/D<0.3 || dx/D>0.6
disp ('Δωσε διαφορετικη τιμη για το dx')
dx=input ('οριζοντια μετατοπιση σε m ')
end
Thanh
2023 年 11 月 4 日
I am using matlap 2017b but I no find simulation pacing options . I need some help .
1 件のコメント
Walter Roberson
2023 年 11 月 4 日
Introduced in R2018a
hawra
2024 年 12 月 12 日 10:14
編集済み: Walter Roberson
2024 年 12 月 12 日 19:49
clc
clear all
close all
s=0
n=1
for 1:0.5:100
s=s+n;
end
disp (s)
1 件のコメント
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!