which for loop will completed first ??
9 ビュー (過去 30 日間)
古いコメントを表示
for i=1:5
for j=1:4
v(i,j)=w*v(i,j)+c1*rand()*(pbest(i,j)-x(i,j))+c2*rand()*(gbest(1,j)-x(i,j));
end
end
how this loops will work.
thanks in advance
2 件のコメント
madhan ravi
2018 年 12 月 9 日
a=rand(3);
m=size(a,1);
n=size(a,2);
b=zeros(size(a,1),size(a,2));
for i=1:m
for j=1:n
b(i,j)=a(i,j) % this will make you understand the working of nested for loops
end
end
Stephen23
2018 年 12 月 9 日
"which for loop will completed first ??"
Of any nested loops, the innermost one will finish first.
回答 (1 件)
Image Analyst
2018 年 12 月 9 日
The inner j loop will finish first, for any given i. The j loop will execute its 4 iterations 5 times - one iteration of 4 times for every one of the 5 i values.
If the loops got very large (tens of thousands of iterations), you might notice a speed up if you switched the i and j loop because MATLAB is "column major" so it goes down rows (left most index) first before jumping over to the next column. So it would be faster if the inner most loop variable were the left most index.
0 件のコメント
参考
カテゴリ
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!