在Matlab的编辑器中,是否可以撤销关闭的选项卡?

4
许多网络浏览器都允许撤销关闭的选项卡: enter image description here 在Matlab的编辑器中是否可以撤销关闭的选项卡?
我使用的是Windows 7上的R2014a版本。
2个回答

9
虽然MATLAB官方并不支持,但参考未记录的MATLAB,有一个解决方法。MATLAB将其桌面窗口状态存储在一个名为MATLABDesktop.xml的文件中,该文件位于用户的prefdir(偏好目录)文件夹中。您可以在MATLAB中键入prefdir并按下EnterRETURN来查看此位置。由于您也在使用Windows,因此还可以通过此方式在MATLAB中打开文件夹:
winopen(prefdir);

这应该会打开一个新的Windows资源管理器窗口,直接带你到prefdir文件夹。
该文件包括有关每个桌面窗口位置和状态的信息。由于编辑器文件被认为是桌面文档,因此它们也包含在此文件中。因此,当您关闭编辑器时,这些文档将从MATLABDesktop.xml文件中删除。
原来,MATLAB会自动将此文件的备份版本存储在同一prefdir文件夹中的另一个名为MATLABDesktop.xml.prev的文件中。我正在使用Windows 7中的MATLAB R2014a,并已仔细检查了一下这些文件是否也存在于我的系统中,它们是存在的!
因此,在做任何其他操作之前,请关闭MATLAB,删除最新的MATLABDesktop.xml文件,用MATLABDesktop.xml.prev文件的副本替换它,并将其重命名为MATLABDesktop.xml。然后重新启动MATLAB,编辑器应该会以您之前的选项卡重新打开。

1
我总是对这种未记录的事情的知识印象深刻。+1 - Luis Mendo

0
您可以使用以下代码。它从MATLABDesktop.xml.prev中提取文件名。
%parse XML file
xmlFiles    = xmlread([prefdir filesep 'MATLABDesktop.xml.prev']);
%Retrieve the "clients"
FileNodes   = xmlFiles.getElementsByTagName('Client');
%get the length of the FileNodes
nrFiles     = FileNodes.getLength;
%initialize Files
Files       = cell(nrFiles,1);
%initialize isFile
isFile      = zeros(nrFiles,1);
%Iterate over all Elements and check if it is a file.
for iNode = 0:nrFiles-1 % Java indexing.
    %Files
    Files{iNode+1} = char(FileNodes.item(iNode).getAttribute('Title'));
    %check if the "client" is a file:
    isFile(iNode+1) = exist(Files{iNode+1},'file') == 2 && ~(strcmp(Files{iNode+1},'Workspace'));
end
%remove the other files:
MyFiles = Files(find(isFile));
%open the files in the editor:
edit(MyFiles{:});

来自MathWorks


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接