MATLAB Answers

how can i use several loops

조회 수: 1(최근 30일)
m m
m m 9 May 2019
편집: m m 11 May 2019
Hi,
Can anyone explain to me how matlab read this loops
for k=1:nt-1
for i=1:nx
end (for i)
for i=nx:1
end (for i=nx:1)
end (for k)
- For example for k=1, matlab will start by i=1:nx (first loop for i)or it will pass to i=1 only.after, it will pass to i=nx (second loop) ?

  댓글 수: 0

댓글을 달려면 로그인하십시오.

채택된 답변

James Tursa
James Tursa 9 May 2019
편집: James Tursa 9 May 2019
MATLAB will do all of the loops in the order it encounters them. So for the k=1 iteration it will do the i=1:nx loop in its entirety and then do the i=nx:1 loop in its entirety. Then it will do the k=2 iteration and do both inner loops in their entirety again. For every iteration of k, both inner loops will be done in their entirety.
Side Note: If nx>1, that i=nx:1 loop won't do anything. Maybe i=nx:-1:1 was meant?

  댓글 수: 0

댓글을 달려면 로그인하십시오.

추가 답변(2개)

gonzalo Mier
gonzalo Mier 9 May 2019
I will try to explain as best as I can. To do that, I will give values to the variables. nt = 4, nx = 5:
for k=1:3 ( = [1,2,3])
k is executed 3 times
disp(" k = "+k);
for i=1:5 ( = [1,2,3,4,5])
i is executed 5 times for each k (3*5 = 15 times)
disp(" i = "+i);
end
for j=5:1 ( = [])
Not executed as 5:1 is an empty vector.
To do it in the inverse way, you should write 5:-1:1
disp(" j = "+j);
end
end
So the output in the screen is:
k = 1
i = 1
i = 2
...
i = 5
k = 2
i = 1
i = 2
...
i = 5
k = 2
i = 1
i = 2
...
i = 5

  댓글 수: 0

댓글을 달려면 로그인하십시오.


m m
m m 11 May 2019
편집: m m 11 May 2019
How can i do only the first iteration in the first loop, then pass to second loop and do the first iteration. is it possible?

  댓글 수: 0

댓글을 달려면 로그인하십시오.

태그


Translated by