从工具箱

时间:2015-06-04 14:07:12

标签: matlab startup toolbox

我正在编写一个Matlab工具箱,我想在Matlab启动时做一些初始化。当工具箱目录在Matlab路径上时,是否有在启动阶段调用的脚本或函数?

我知道有一个“startup.m”,但这是特定于用户的。如果用户在MATLAB路径上拥有自己的“startup.m”比工具箱更高,则不会调用它。

只要Simulink启动就会调用“sl_customization.m”,即使在路径上找到多个文件也是如此。也许Matlab本身有类似的东西?

修改

也许现在为时尚早。但是从我的回答和评论看,默认情况下似乎没有内置的这种机制。

仅澄清:我不想以任何方式更改用户的设置。可以使用插件扩展工具箱。在启动期间,我想检测这样的插件并暂时(即仅针对当前会话)在MATLAB路径上添加其基本目录(如果他们有自己的文档可用)。因此可以在帮助中心找到它。

以一种方式更改matlabrc是否有意义,Matlab路径上的所有“startup.m”文件都是一个接一个地执行的(最好是从最低路径到最高路径,以便最高的那个能够覆盖其他人的设置)?然后我可以使用在启动时执行的“startup.m”运送我的工具箱,即使工具箱被删除(并且未正确卸载),也不会损害Matlab环境,因为默认情况下只有一个启动文件。或者这会走得太远?我没有想过这种方法有什么问题吗?

1 个答案:

答案 0 :(得分:3)

当MATLAB启动时,它会运行matlabrc.m,这不是特定于用户的,而是存储在\toolbox\local文件夹中。

此文件包含许多在启动时运行的内容,系统管理员应该在安装MATLAB之前修改它,以实现他们希望所有用户实现的启动选项。它是matlabrc.m实际调用用户的startup.m(如果存在)。输入doc matlabrc以了解详情,然后输入edit matlabrc来阅读您的内容并查看其功能。

所以你理论上可以修改它。但是,有一些问题:

  1. 许多用户已将MATLAB安装在他们没有写访问权限的位置,这意味着您将无法对其进行修改。
  2. matlabrc在许多MATLAB服务启动之前运行,因此您可能不希望做一些事情。
  3. 如果您需要对工具箱进行编译,那么它将无法工作,因为启动会以不同的方式编译应用程序,而不会调用matlabrc
  4. 此外,正如评论中所提到的,它很可能会惹恼很多用户,他们不想要你的启动设置,也不会轻易删除它们。

    我建议您创建一个脚本(假设为mytoolboxstartup.m),然后在安装过程中为用户提供将运行matlab -r mytoolboxstartup.m的桌面快捷方式(或类似内容)。

    通过这种方式,用户可以选择启动常规MATLAB或以您为工具箱推荐的方式设置的MATLAB。此外,如果用户想要编写自己的函数来调用工具箱,他们可以直接为自己调用mytoolboxstartup