Azzera filtri
Azzera filtri

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

15 visualizzazioni (ultimi 30 giorni)
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!

Risposte (1)

Iddo Weiner
Iddo Weiner il 29 Gen 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 Commenti
Andrew Chen
Andrew Chen il 30 Gen 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 il 1 Feb 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!

Accedi per commentare.

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by