Start script at a chosen line

66 views (last 30 days)
Ali Komai
Ali Komai on 26 Sep 2018
Commented: Rik on 26 Oct 2020
As we know it is not possible to modify a running script. You have to stop the script and restart it for the changes to become active. Now I wonder if it is possible to jump into a script at a chosen line. So one could stop a running process, make the desired changes and then have the program continue in the modified version without running the code before the changed part again.
  4 Comments
Alexander. Koutsouris
Alexander. Koutsouris on 26 Oct 2020
Start you script with:
i=0;
if i==0
else
And set the "end" at the point where you want to run the script
Rik
Rik on 26 Oct 2020
@Alexander, that will have the same effect as commenting out code. It would also make more sense to me if you use this instead:
if false
%code that shouldn't run
end
%code that should run
That way you don't interfere with any variable that might be used in the rest of the code.

Sign in to comment.

Accepted Answer

Jan
Jan on 26 Sep 2018
Using a method to stop and re-enter scripts at arbitrary lines would be a meta-interpreter, which runs on top of Matlab. Such a method would be prone to errors and it will be hard to reproduce the results reliably. If you want to run a code with some modifications, create a function and trigger the different methods by using a switch, e.g. controlled by an input argument.
Using structured code and functions is such a great improvement and much more stable than running scripts in dynamically modified pieces, that I cannot imagine, why somebody wants to do it the hard and complicated way.
  1 Comment
Ali Komai
Ali Komai on 26 Sep 2018
You are surely right and of course it is better to have the code structured but it is a reoccurring issue for me while debugging. And it is in nature of bugs that they pop up at unforeseen locations in the code. :-) However I got my answer. Thank you!
@Adam: Thank you for pointing this out! I was not aware that editing a function that is not executed at the moment was possible. This will help!
@Rik Wisselink: Thank you for this suggestion. I had the same idea but was wondering if there is another possibility.

Sign in to comment.

More Answers (0)

Categories

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

Community Treasure Hunt

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

Start Hunting!