从工具箱中检测Matlab启动
我正在编写一个Matlab工具箱,我想在Matlab启动时进行一些初始化。当工具箱目录位于Matlab路径上时,在启动阶段是否调用了任何脚本或函数 我知道有一个“startup.m”,但这是特定于用户的。如果用户在MATLAB路径上的“startup.m”高于工具箱,则不会调用它 有一个“sl_customization.m”,它在Simulink启动时被调用,即使路径上有多个文件。也许Matlab本身也有类似的东西 编辑 也许现在做这个还为时过早。但从你的回答和评论中我看到,似乎没有默认内置的机制 只是澄清一下:我不想以任何方式更改用户的设置。工具箱可以通过使用插件进行扩展。在启动期间,我想检测这些插件,并临时(即仅针对当前会话)将它们的基本目录添加到MATLAB路径上(如果它们有自己的文档可用)。这样就可以在帮助中心找到它从工具箱中检测Matlab启动,matlab,startup,toolbox,Matlab,Startup,Toolbox,我正在编写一个Matlab工具箱,我想在Matlab启动时进行一些初始化。当工具箱目录位于Matlab路径上时,在启动阶段是否调用了任何脚本或函数 我知道有一个“startup.m”,但这是特定于用户的。如果用户在MATLAB路径上的“startup.m”高于工具箱,则不会调用它 有一个“sl_customization.m”,它在Simulink启动时被调用,即使路径上有多个文件。也许Matlab本身也有类似的东西 编辑 也许现在做这个还为时过早。但从你的回答和评论中我看到,似乎没有默认内置的
更改matlabrc是否有意义,使Matlab路径上的所有“startup.m”文件一个接一个地执行(最好从路径上最低的文件执行到最高的文件,以便最高的文件能够覆盖其他文件的设置)?然后,我可以将工具箱附带一个“startup.m”,在启动时执行,即使工具箱被删除(并且没有正确卸载),它也不会损害Matlab环境,因为默认情况下只有一个启动文件。还是会走得太远?这种方法有什么我没有想到的问题吗?当MATLAB启动时,它运行
matlabrc.m
,它不是特定于用户的,存储在\toolbox\local
文件夹中
该文件包含许多在启动时运行的内容,其目的是让系统管理员在安装MATLAB之前对其进行修改,以实现他们希望所有用户实现的启动选项。实际上是matlabrc.m
调用用户的startup.m
,如果它存在的话。键入doc matlabrc
以了解更多信息,键入edit matlabrc
以阅读您的文档并查看其功能
所以理论上你可以修改它。但是,这方面存在一些问题:
matlabrc
在许多MATLAB服务启动之前运行,因此您可能不想做的一些事情matlabrc
mytoolboxstartup.m
),然后作为安装过程的一部分,为用户提供一个桌面快捷方式(或类似的方式),该快捷方式将运行matlab-r mytoolboxstartup.m
通过这种方式,用户可以选择启动一个常规的MATLAB,或者按照您为工具箱推荐的方式设置的MATLAB。此外,如果用户希望编写自己的函数调用您的工具箱,他们可以直接为自己调用
mytoolboxstartup
。这不是很优雅,但作为“安装”过程的一部分,您可以将对startup.m底部的调用添加到您自己的初始化脚本中。您添加到启动中的代码可能会检测到工具箱的存在,并且仅当工具箱位于您要查找的路径上(例如,如果用户已“安装”)时才会运行?请不要这样做,我不希望工具箱干扰我的启动设置。