execution order

What is the easiest way to control execution order of your code?
i have a function that creates an array of numbers and then I have a for loop that needs to use some numbers from that array. but the for loop seesms to be executing first.

댓글 수: 4

Jonathan
Jonathan 2011년 11월 17일
Can you give us an example of this to clarify your question?
Baba
Baba 2011년 11월 17일
time=function(pwd); % creates an array of numbers;
for i=1:10
...
...
need to use parts of time array here
end
but it seems that the time array gets populated after the for loop is executed.
Walter Roberson
Walter Roberson 2011년 11월 17일
No, in such a situation, the "time" variable would get populated before the "for" loop starts.
However, please remember that "time" is the name of a MATLAB library routine, and functions cannot be named "function". When you use library routine names as variables, it is common to run in to unexpected effects.
Baba
Baba 2011년 11월 17일
thank you!

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

 채택된 답변

Jan
Jan 2011년 11월 17일

0 개 추천

Matlab executes the code line by line in serial order. Inside a line the commands are executed from left to right.
Callbacks and timer functions are processed, if the command prompt is reached, or if PAUSE or DRAWNOW trigger their execution.
I do not see any possibilities to influence the order of execution.

댓글 수: 7

Baba
Baba 2011년 11월 17일
thank you!
Walter Roberson
Walter Roberson 2011년 11월 17일
In modern versions, timer callbacks can occur between any two lines, apparently.
Jan
Jan 2011년 11월 17일
@Walter: Is this documented?
Walter Roberson
Walter Roberson 2011년 11월 17일
No, not documented :(
http://www.mathworks.com/matlabcentral/answers/10394-timer-and-interruptible-off-button-callback-priority-preemption
Oh wait, here is official evidence!
http://www.mathworks.com/support/solutions/en/data/1-2QJ375/index.html?solution=1-2QJ375
And I think I might have traced back the discussion I was thinking of:
http://www.mathworks.com/matlabcentral/newsreader/view_thread/283728
Jonathan
Jonathan 2011년 11월 17일
I would make a small modification to this answer. Inside a line, the commands are executed from left to right and inside to outside.
Daniel Shub
Daniel Shub 2011년 11월 17일
@Walter, understanding timers is not that easy (and I am not sure you are implying it is easy). See my new question: http://www.mathworks.com/matlabcentral/answers/21537-what-thread-do-timers-operate-in
Jan
Jan 2011년 11월 17일
@Jonathan: Exactly. Inside a line the precedence order rules, but for the same precedence the left operation is performed at first.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2011년 11월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by