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

时间:2014-06-28 01:19:59

标签: matlab

许多网络浏览器允许撤消关闭标签:

enter image description here

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

我在Windows 7上使用R2014a。

2 个答案:

答案 0 :(得分:8)

在MATLAB中没有正式支持,但参考Undocumented MATLAB,有一种解决方法。

MATLAB将其桌面窗口状态存储在名为MATLABDesktop.xml的文件中,该文件位于用户的prefdir(首选项目录)文件夹中。只需在命令提示符下键入prefdir并按 Enter RETURN ,就可以回显MATLAB中的位置。当您也使用Windows时,您也可以在MATLAB中打开文件夹:

winopen(prefdir);

这应该打开一个新的Windows资源管理器窗口,它将直接带您进入prefdir文件夹。

此文件包含有关每个桌面窗口的位置和状态的信息。由于编辑器文件被视为桌面文档,因此它们也包含在此文件中。因此,当您关闭编辑器时,只需从MATLABDesktop.xml文件中删除这些文档。

事实证明,MATLAB会自动将此文件的备份版本存储在另一个名为MATLABDesktop.xml.prev的文件中,该文件位于同一prefdir文件夹中。我也在Windows 7中使用MATLAB R2014a,我已经仔细检查过这些文件是否也在我的系统上,而且它们都是!

因此,在执行任何其他操作之前,请关闭MATLAB,删除最新的MATLABDesktop.xml文件,将其替换为MATLABDesktop.xml.prev文件的副本,并将其重命名为MATLABDesktop.xml。之后,重新启动MATLAB,编辑器应该重新打开以前的选项卡。

答案 1 :(得分: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