Вы можете использовать объект com.mathworks.mlservices.MLEditorservice
для доступа к редактору и сохранения всех грязных файлов.
service = com.mathworks.mlservices.MLEditorServices;
% Get a vector of all open editors
editors = service.getEditorApplication.getOpenEditors();
% For each editor, if it is dirty, save it
for k = 0:(editors.size - 1)
editor = editors.get(k);
if editor.isDirty()
editor.save();
end
end
Вместо того, чтобы слепо экономии все файлы, вы можете изменить это немного, так что вы могли бы передать список функций (ваших зависимостей) и просто сохранить их.
function saveAll(varargin)
% Convert all filenames to their full file paths
filenames = cellfun(@which, varargin, 'uniformoutput', false);
service = com.mathworks.mlservices.MLEditorServices;
% Get a vector of all open editors
editors = service.getEditorApplication.getOpenEditors();
% For each editor, if it is dirty, save it
for k = 0:(editors.size - 1)
editor = editors.get(k);
% Check if the file in this editor is in our list of filenames
% and that it's dirty prior to saving it
if ismember(char(editor.getLongName()), filenames) && editor.isDirty()
editor.save();
end
end
end
И это можно назвать с несколькими именами функций (как строки)
saveAll('myfunc', 'myotherfunc')
Я предлагаю вам разъяснить значение «грязный» здесь (файлы, которые были изменены, но не сохранены) в пользу новичков –