Clear Filters
Clear Filters

Create new workspace programatically

13 views (last 30 days)
Wenjie Han
Wenjie Han on 20 Aug 2018
Commented: Stephen23 on 21 Aug 2018
Is there any way to create a new workspace programatically just same as calling a function?
  2 Comments
Rik
Rik on 20 Aug 2018
Edited: Rik on 20 Aug 2018
What do you mean with workspace exactly? Because in the Matlab-definition of the word, it is automatically generated when you call a function. If you want to create a new base workspace, you can't. You can start a new instance of Matlab.
Really convoluted, but quite robust as well:
command_to_run=sprintf('"%s"',fullfile(matlabroot,'bin','matlab.exe'));
batfilename=[char(randi([97 122],1,8)) '.bat'];
while exist(batfilename,'file')
batfilename=[char(randi([97 122],1,8)) '.bat'];
end
fid=fopen(batfilename,'wt');
fprintf(fid,'%s\n',command_to_run);
fprintf(fid,'del /q "%%~dp0%s" 2>&1 >nul|findstr "^" >nul && exit || exit',batfilename);
fclose(fid);
system(sprintf('start %s',batfilename))
Stephen23
Stephen23 on 21 Aug 2018
"...create a new workspace programatically just same as calling a function?"
Every function has its own workspace (nested and anonymous functions also access variables in the workspace where they are defined), so creating a new workspace just requires writing a function and calling it.

Sign in to comment.

Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!