我正在寻找一种方法,通过双击文件,直接通过双击文件,在Matlab文件夹中打开Excel文件(在大多数情况下通过MS Excel),而不是右键单击并选择“打开”在Matlab之外。
使用Matlab构建的.xls文件阅读器对于大文件来说速度非常慢,不必要的双击文件可能需要相当长的时间才能使Matlab无响应。
感谢。
答案 0 :(得分:3)
单击“当前文件夹”选项卡中的某些内容时,它实际上正在运行open
命令,该命令本身调用finfo
以确定给定扩展名的“打开”含义。您可以通过在open.m
行后直接在[~, openAction] = finfo(fullpath);
中创建断点并双击 - 当它到达断点时您会看到它返回openAction
为uiimport
。
理论上,您可以通过在路径上创建函数openabc
来创建扩展的自定义方法,其中abc
是扩展名,应该作为openAction
返回。
但是,如果我查看我的finfo.m
,它首先搜索所述函数,然后无论是否找到它们,如果有内置方法,它都会用标准行为覆盖它们。甚至还有评论:
% this setup will not allow users to override the default EXTread behavior
如果你愿意在内置产品中捣乱,你可以这样做(先备份! - 这可能会影响其他事情)。我是通过像现在的finfo
这样遮蔽来暂时做到的:
edit finfo.m
(现在将副本保存到当前文件夹)
在定义openAction
的循环之后添加这些行(在我的版本中,在第85行附近):
if any(strcmp(['.' ext], matlab.io.internal.xlsreadSupportedExtensions))
openAction = 'winopen';
end
在包含已修改finfo.m
的文件夹中,输入which finfo -all
。您应该看到两个副本,MATLAB标记为阴影。从当前文件夹窗口打开内容现在应该在外部打开Excel。
答案 1 :(得分:0)
我不相信有任何直截了当的方法。它内置于MATLAB中,当您双击它们时,Excel文件将在导入工具中打开,并且无法更改它。
您可以通过将Excel文件的文件扩展名更改为.xls
或.xlsx
以外的其他内容来解决此问题。这将阻止MATLAB在导入工具中打开它。然后在Windows中,您可以将新文件扩展名与Excel关联。