Run a section of code, pause, close figures and proceed to next section

14 vues (au cours des 30 derniers jours)
Andrew Chen
Andrew Chen le 29 Jan 2017
Commenté : Iddo Weiner le 1 Fév 2017
Hello, I am trying to beautify my code and it would be great if I could make my code run as described in the question. My most recent attempt looked something like this:
%%Section1
X = [...];
Y = [...];
h(1) = figure
plot(X)
hold on
plot(Y)
pause;
close figure 1
%%Section2
Not all sections have figures however (some only display text in the command window) but for some reason, when I would hit a key to advance past the pause, the figure would close and no code would be displayed from the next section. The run button in the editor tool bar said run (not pause) but when I clicked on it, the entire code would not run. I would then close matlab and would get a message that says something like matlab is running something and if you close now whatever it is doing would be incomplete.
Basically, I would greatly appreciate it if any of you know how to pause code at the end of a section then, upon some input, close any figures at the end of that section and advance to the next section. Thanks for your time!

Réponses (1)

Iddo Weiner
Iddo Weiner le 29 Jan 2017
Have you tried running sections (mark a section by starting it with %%+enter) separately with ctrl+enter?
then you can plant:
close all
at the end of the section and basically you get what you're looking for, if I understand you correctly..
  3 commentaires
Andrew Chen
Andrew Chen le 30 Jan 2017
So I am replying directly to you Sean since I apparently can only accept Iddo's answer and not reply. I can do that but I was looking for a more stream line solution. As you can see from my code sample above I cam marking my sections with two percent signs but I would like a solution where I can hit run, the code will pause at some point that I mark. Then I can press a button and the code will continue to the next pause. I have tried using the close all command but I have seen others comment (on other places on the internet) that the close all command will also close the matlab gui. Perhaps that is the reason that I am experiencing the crashes I described above. Regardless, if you or anyone has any other methods to achieve the effect I am looking for, that would be much appreciated.
Iddo Weiner
Iddo Weiner le 1 Fév 2017
Andrew, if you know in advance where you want to pause, and don;t want to use %% you can use matlab's stop ( doc stop). If you don't know this in advance, there might be a different option - I found this file in the file exchange, it's supposed to create a pause button, hope it helps:
http://www.mathworks.com/matlabcentral/fileexchange/6060-pausebutton
Regarding closing figures - if you don't want to use close all, there are other, more specific ways to do so. For instance - you can go: close(gcf) to close the last figure produced. You can also give handles to all your figures and use those to close specific figures. Check out Matlab's close documentation ( doc close).
Hope this is helpful!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Environment and Settings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by