can i pause matlab excution while it is already running

조회 수: 133 (최근 30일)
gasser
gasser 2013년 3월 26일
댓글: Walter Roberson 2020년 3월 25일
hi every on ,
can i pause matlab excution while it is already running
(i.e) if i have a script and is already running can i pause it for any time then resuming it again .
thanks a lot .
  댓글 수: 2
LJ
LJ 2015년 7월 12일
You can use this clever function the next time. It will allow you to pause the execution any time you want just with the click of a button and then you can resume it pressing F5.
Walter Roberson
Walter Roberson 2016년 5월 31일
That will not work unless there is a figure() or drawnow() or pause() or waitfor() or uiwait() somewhere in the code. Pushbuttons are not serviced until the graphics queue is processed, which requires one of the above to happen.

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

답변 (6개)

Nick Hilton
Nick Hilton 2015년 10월 12일
If you're on a UNIX platform, then there is an easy way to do this:
Simply run your script on the command line in a BASH shell like so:
matlab -nodesktop -nosplash -r "run_some_script(arg1, arg2, ...)"
Now that it is running, you can pause execution by pressing CTRL+Z, which pauses execution and returns you to the BASH prompt again. To continue execution, execute the 'fg' command to put the suspended job back into the foreground.
Another advantage to this approach, most graphical terminals provide an output buffer, and one can scroll and examine the output buffer without pausing the execution, and without new output causing the buffer to scroll the screen. So I can look at the buffer to tell where the execution is in a loop, for example, without pausing anything.
I hope this helps someone that finds this topic.
  댓글 수: 3
Benoit Espinola
Benoit Espinola 2018년 9월 13일
This is gold!
"Another advantage to this approach, most graphical terminals provide an output buffer, and one can scroll and examine the output buffer without pausing the execution, and without new output causing the buffer to scroll the screen. So I can look at the buffer to tell where the execution is in a loop, for example, without pausing anything."
And how can we consult this output buffer?
Would you say that consulting the output buffer could give me information on the state of the execution of the code?
Many thanks,
Benoit
Walter Roberson
Walter Roberson 2018년 9월 15일
To consult the output buffer, use the Page Up / Page Down keys, or use whatever scrollbar your terminal application provides. Here, "output buffer" refers a configurable number of lines of stdout .
For example on OS-X, inside the Terminal.app utility, Preferences -> Profiles -> Window permits me to configure whether I want scrollback to be limited to available memory, or to a specific number of output lines.

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


Image Analyst
Image Analyst 2016년 5월 31일
With R2016a, there is now a Pause button on the tool ribbon that appears when your code runs:

Mahdi
Mahdi 2013년 3월 27일
You can pause the script/function that you're running for a specified amount of time without quitting the script.
You can use the pause(n) function to stop the script for n seconds.
If you're using a GUI, I would suggest looking at uiwait.

Jan
Jan 2013년 3월 26일
No.
  댓글 수: 2
Jan
Jan 2013년 3월 26일
Sorry, I did not want to pollute my answer by too many details: You can stop the execution by hitting Ctrl-C, but afterwards you cannot resume.
Actually, the results must be correct, if you force the computer to fall asleep, e.g. a hibernation. But I would test this exahsutively before I'd trust the results.
Walter Roberson
Walter Roberson 2013년 3월 26일
You might also be able to suspend MATLAB from the operating system.

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


Omer Moussaffi
Omer Moussaffi 2014년 12월 14일
Not without preparation. You could add the command 'keyboard' into the script at a specified place, and then it would give you back control. You then do your changes, and either call 'return' to resume or dbquit to stop the script.

jingxuan yang
jingxuan yang 2020년 3월 24일
use
uiwait
to pause
and use
uiresume
to continue
  댓글 수: 1
Walter Roberson
Walter Roberson 2020년 3월 25일
Yes, if you have the cooperation of the code being run, if it knows that you should pause there, or if it regularly calls one of the functions such as drawnow() that processes the event queue to permit a callback to be triggered to run the uiwait()

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

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by