Сохранить текущий запущенный скрипт в Matlab - PullRequest
2 голосов
/ 22 марта 2011

Есть ли способ сохранить текущий запущенный скрипт в Matlab?У меня есть сценарий, который автоматически создает резервную копию набора сценариев, хотя если я изменил текущий сценарий, то сохраненная версия будет устаревшей.

Может быть, можно назвать java?

Спасибо

Ответы [ 2 ]

3 голосов
/ 23 марта 2011

Где-то на сайте Яира Альтмана (см. Ссылку в моем другом ответе) он также сослался на запись в блоге о editorservices , которая была представлена ​​в MATLAB R2009b.

editorservices.getActive().save

должен делать то, что вы хотите.

0 голосов
/ 23 марта 2011

Хорошо, все, что я пишу здесь, я узнал от undocumentedmatlab.com от Яир Альтман , в частности, глядя на его EditorMacro.m ... great материал!

Я предполагаю, что Итамар Кац правильно вас понял и что вы запускаете несохраненный код из редактора, используя "Evaluate Cell" или "Evaluate Selection"; вы хотите, чтобы ваш код понял, что он не сохранен, и сохраните версию, отображаемую в данный момент в редакторе, в другом месте.

Я не нашел способ сохранить файл непосредственно в исходное местоположение, но, по крайней мере, я нашел способ получить доступ к текущему тексту. Затем вы можете использовать fprintf, чтобы сохранить его в любом месте. Я проверил это в Matlab 7.11 (R2010b); если у вас есть другая версия, вам нужно покопаться в EditorMacro.m, чтобы найти правильный код для Matlab 6.

if  com.mathworks.mlservices.MLEditorServices.getEditorApplication.getActiveEditor.isDirty    
    thisdocument=com.mathworks.mlservices.MLEditorServices.getEditorApplication.getActiveEditor.getDocument;
    thisdocument_text=char(thisdocument.getText(0,thisdocument.getLength));
    fid = fopen('backupfile.m','w');
    fprintf(fid, '%s', thisdocument_text);
    fclose(fid);
else
    % saved file is unmodified in editor - no need to play tricks...
    ...
end

Таким образом, условие if проверяет, содержит ли текущее активное окно редактора файл, который не был сохранен («грязный»); если это так, нам нужно извлечь текущую версию кода (в переменную thisdocument_text) и сохранить эту строку в некотором файле.

Помогает ли это?

...