我正在寻找一种方法,让我的 Matlab 文件夹中的 Excel 文件在“Matlab 外部”(即在大多数情况下通过 MS Excel)直接双击文件,而不是右键单击并选择“打开”在 Matlab 之外”。
Matlab 中内置的 .xls 文件阅读器对于大文件来说可能非常慢,并且在不希望的情况下双击文件可能会花费相当长的时间,导致 Matlab 无响应。
谢谢。
最佳答案
当您在“当前文件夹”选项卡中单击某个内容时,它实际上正在运行 open
命令,该命令本身会调用 finfo
来确定给定“打开”的含义扩大。您可以通过在 [~, openAction] = finfo(fullpath);
行之后直接在 open.m
中创建断点并双击 - 当它到达断点时看到这一点您会看到它以 uiimport
的形式返回 openAction
。
理论上,您可以通过在路径上创建一个函数 openabc
来为扩展创建自定义方法,其中 abc
是扩展,应该作为 返回打开 Action
。
但是,如果我查看我的 finfo.m
,它会首先搜索所述函数,然后无论是否找到它们(如果有内置方法)都会用标准行为覆盖它们。甚至还有评论:
% 此设置不允许用户覆盖默认的 EXTread 行为
如果你愿意在内置系统中乱搞,你可以这样做(先备份!- 这可能会影响其他事情)。我通过像这样隐藏现有的 finfo
来临时做到这一点:
编辑 finfo.m
(现在保存一个副本到当前文件夹)
在定义 openAction
的循环之后添加这些行(在我的版本中,大约在第 85 行):
if any(strcmp(['.' ext], matlab.io.internal.xlsreadSupportedExtensions))
openAction = 'winopen';
end
从包含您编辑的 finfo.m
的文件夹中,键入 which finfo -all
。您应该看到两份副本,MATLAB 一份标记为阴影。从当前文件夹窗口打开某些内容现在应该从外部打开 Excel。
关于excel - Matlab:默认打开文件 'outside Matlab',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22067730/