我正在编写一个Matlab工具箱,我想在Matlab启动时做一些初始化。当工具箱目录在Matlab路径上时,是否有在启动阶段调用的脚本或函数?
我知道有一个“startup.m”,但这是特定于用户的。如果用户在MATLAB路径上拥有自己的“startup.m”比工具箱更高,则不会调用它。
只要Simulink启动就会调用“sl_customization.m”,即使在路径上找到多个文件也是如此。也许Matlab本身有类似的东西?
修改
也许现在为时尚早。但是从我的回答和评论看,默认情况下似乎没有内置的这种机制。
仅澄清:我不想以任何方式更改用户的设置。可以使用插件扩展工具箱。在启动期间,我想检测这样的插件并暂时(即仅针对当前会话)在MATLAB路径上添加其基本目录(如果他们有自己的文档可用)。因此可以在帮助中心找到它。
以一种方式更改matlabrc是否有意义,Matlab路径上的所有“startup.m”文件都是一个接一个地执行的(最好是从最低路径到最高路径,以便最高的那个能够覆盖其他人的设置)?然后我可以使用在启动时执行的“startup.m”运送我的工具箱,即使工具箱被删除(并且未正确卸载),也不会损害Matlab环境,因为默认情况下只有一个启动文件。或者这会走得太远?我没有想过这种方法有什么问题吗?
答案 0 :(得分:3)
当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
。