Create new workspace programatically

10 Ansichten (letzte 30 Tage)
Wenjie Han
Wenjie Han am 20 Aug. 2018
Kommentiert: Stephen23 am 21 Aug. 2018
Is there any way to create a new workspace programatically just same as calling a function?
  2 Kommentare
Rik
Rik am 20 Aug. 2018
Bearbeitet: Rik am 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 am 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.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by