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 Comments

Jonathan
Jonathan on 17 Nov 2011
Can you give us an example of this to clarify your question?
Baba
Baba on 17 Nov 2011
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.
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 on 17 Nov 2011
thank you!

Sign in to comment.

 Accepted Answer

Jan
Jan on 17 Nov 2011

0 votes

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 Comments

Baba
Baba on 17 Nov 2011
thank you!
In modern versions, timer callbacks can occur between any two lines, apparently.
Jan
Jan on 17 Nov 2011
@Walter: Is this documented?
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 on 17 Nov 2011
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 on 17 Nov 2011
@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 on 17 Nov 2011
@Jonathan: Exactly. Inside a line the precedence order rules, but for the same precedence the left operation is performed at first.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 17 Nov 2011

Community Treasure Hunt

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

Start Hunting!