This script is designed to to save and restore the working state of MATLAB. This has only been tested on MATLAB version R2007a to R2011a, and it uses some undocumented features of MATLAB and might not work correctly for other versions.
When this script is called with the 'save' flag, it will ask for a location and file name to save the MATLAB state to. It will then proceed to save the current working directory, additional paths that differ from MATLAB root, open editor files, debug break points, open figures, base workspace variables, and command window history (this is not the same as the command history).
When this script is called with the 'restore' flag, it will open and GUI asking for the mState file to restore the MATLAB state from. All editor windows will then be closed, all debug break points will be removed, the command window will be cleared, all open figures will be closed, and all base workspace variables will be deleted before restoring the state. The script will then restore from the mState file the current working directory, addition paths other than MATLAB root, open editor windows, debug break points, open figures, base workspace variables, and commend window text history.
It throws an error in R2011b when I try to save a session and the Editor is closed; apparently it's looking for a getActiveEditor handle that doesn't exist or is empty (line 121).
This is a fantastic capability. It even works for restoring GUIs, something I've been looking for lately.
This opens up a lot of possibilities, including modifying it and building it into my GUIs to allow a user to save and restore their work (not the entire Matlab session, just the GUI stuff).
Job very well done!
Fixed an error that was caused by saving the MATLAB state when the editor was closed.