在Matlab中保存当前运行的脚本

时间:2011-03-22 10:03:02

标签: matlab scripting save

有没有办法在Matlab中保存当前运行的脚本?我有一个脚本自动备份一组脚本,但如果我更改了当前脚本,则保存的版本将过时。

也许可以调用一些java?

由于

2 个答案:

答案 0 :(得分:3)

在Yair Altman网站的某个地方(参见我的其他答案中的链接),他还提到了a blog entry about editorservices,它是在MATLAB R2009b中引入的。

editorservices.getActive().save

应该做你想做的事。

答案 1 :(得分:0)

好的,我在这里写的所有内容都是从undocumentedmatlab.com Yair Altman开始学习的,特别是通过查看他的EditorMacro.m ......很棒的东西!

我假设Itamar Katz正确地理解了您,并且您使用“评估单元格”或“评估选择”从编辑器运行未保存的代码;您希望您的代码意识到它没有保存,并将当前显示在编辑器中的版本保存到其他位置。

我还没有找到将文件直接保存到原始位置的方法,但至少我找到了访问当前文本的方法。然后,您可以使用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)并将此字符串保存到某个文件中。

这有帮助吗?