Saving all tabs into a folder

9 visualizzazioni (ultimi 30 giorni)
FFFLP
FFFLP il 22 Apr 2023
Commentato: FFFLP il 22 Apr 2023
This question is about the interface. I would like to save all my Matlab script tabs into a folder. Is there any quick way to do that? Unfortunately, I cannot save them one by one since I do have 100+ scripts.
Thanks.
  4 Commenti
Rik
Rik il 22 Apr 2023
Are you using the words script and function interchangeably? Because 100+ scripts is very likely to be a sign of terrible design. You should use functions to make sure you have a stable interface that you can document and can improve in isolation.
FFFLP
FFFLP il 22 Apr 2023
No, I've been coding for some time (about 6 years) and I just shrink tabs as I need those time to time, instead of closing. I'm not an expert neither as you can guess. I should have used more functions though, thats true.

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 22 Apr 2023
targetdir = 'DirectoryToSaveInto';
if ~isdir(targetdir); mkdir(targetdir); end
X = matlab.desktop.editor.getAll;
newnames = fullfile(targetdir, {X.Filename}.');
arrayfun(@(Info, NewName) Info.saveAS(NewName), X, newnames)
You might need to 'Uniform', 0. You might possibly need to loop. And you might possibly need to deal specially with untitled
  1 Commento
FFFLP
FFFLP il 22 Apr 2023
Thats great! I cannot thank you enough. Here's the syntax corrected running version for people need it.
targetdir = 'DirectoryToSaveInto';
if ~isdir(targetdir); mkdir(targetdir); end
X = matlab.desktop.editor.getAll;
newnames = fullfile(targetdir, {X.Filename}.');
[folder, baseFileNameNoExt, extension] = fileparts(newnames);
Fileswithextensions = strcat(baseFileNameNoExt,extension);
correctednames = fullfile(targetdir, Fileswithextensions.');
arrayfun(@(Info, NewName) Info.saveAs(NewName), X, correctednames)

Accedi per commentare.

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by