MATLAB: Pausing scripts to wait for user to execute commands

brushMATLABpausesuspenduser input

Is there a way to pause a MATLAB script and wait for a user to execute some commands (e.g. brushing in the plot and then in the command window)?
Specifically, I want to select some data using the brush tool from the plot, but I want to select multiple groups and then deal with them later (i.e. with the remainder of my script). Typically, I could just do this in 2 parts, one to get the plot, and then after I brush the data and manipulate it into the right structure, run a secondary script to finish up. However, my issue is that I need to do this for a number of different datasets which I was looping through. Changing the parameters to get to the next dataset manually in addition to selecting the data manually seems too tedious for there not to be a better way.
I'm familiar with
pause
and things such as
x = input('Enter something: ')
But this only pauses the script, rather than suspending it to allow the user to interact with the data freely. I think I can brush data and save as variables during a pause, and if I was always going to brush the same number of variables, then this would be fine, but I will select groups based on how the data looks. And because they will be different sizes, I would then save the data in a cell to manipulate in further parts.
I could see such functionality also being useful later if I want to explore the data in the future. See a plot and then want to do something more to it.

Best Answer

keyboard() -- but you have to know to dbcont to continue afterwards.
Related Question