我的Ubuntu 22.04上的MATLAB R2023a不能保存路径设置,每次重启都需要重新设置路径,很是麻烦。网上一搜,全是说给pathdef.m
加权限就能解决的,但实际操作下来发现还是没用。
经探索,另一种方式就是通过修改启动文件来修改启动选项了,这样每次启动MATLAB时都会自动执行我们的脚本。下面对此进行介绍:
使用MATLAB启动文件(Startup File)修改启动选项
可以用startup.m
文件修改启动选项。
- 首先,启动MATLAB,在命令行中输入
which startup
以寻找默认搜索路径下是否有startup.m
文件。若找到,跳转到第四步。
- 若未找到,则可在MATLAB的任一默认搜索路径的文件夹下创建一个
startup.m
文件。先在命令行输入
path
以查看MATLAB的搜索路径,选择其中一条,建议用matlabroot/toolbox/local
这条路径。
- 之后我们创建一个新的
startup.m
文件,例如,我们在终端中用vim新建并打开startup.m
。注意将路径替换为你自己的路径,也可用别的方式创建文件并修改。
cd /usr/local/MATLAB/R2023a/toolbox/local
sudo vim startup.m
-
打开
startup.m
文件,在该文件中可以修改启动选项。 -
例如,我们将以下语句写入
startup.m
文件中,即可将指定的文件夹/xxx/xxx/xxx
放到搜索路径当中:
addpath('/xxx/xxx/xxx')
再例如,我们也可以指定启动时打开的文件夹,只需写入以下语句
cd '/xxx/xxx/xxx'
因为这个脚本也是一个.m
文件,因此除了启动MATLAB时会自动运行外,和别的MATLAB代码也没有区别,MATLAB里所有函数都可以用,大家可以触类旁通地进行自己需要的设置。
-
经实践表明,对于自己新创建的
startup.m
,尽管已经放在了MATLAB搜索路径下,但是MATLAB还是搜索不到这个文件。这一点可以在MATLAB命令行中输入which startup
来检查确认,如果没搜索到,则我们还需要更新一下设置路径。具体地,在命令行中输入savepath
,或者直接在MATLAB图形菜单中点开设置路径
然后点一下保存即可。之后再输入which startup
,就可以看到我们新创建的startup.m
。最后重启MATLAB让设置生效。 -
以上六个步骤就是可以完成设置了,以下是附加讲解:
-
在启动时,MATLAB会自动执行一个名为
matlabrc.m
的启动脚本。除此之外,这个脚本还会去搜索MATLAB路径下的startup.m
脚本并执行(前提是存在名为startup
的可执行文件)。matlabrc.m
位于MATLAB根目录下的matlabroot/toolbox/local
文件夹,以我的Ubuntu 22.04上的R2023a版MATLAB为例,为/usr/local/MATLAB/R2023a/toolbox/local
文件夹。但这个文件是供MathWork和多用户系统的系统管理员使用的,对普通用户而言这个文件是只读的,无法修改,否则也可以用这个文件修改启动选项。(当然提供权限后也是可以强制修改的。)因此还是创建一个startup.m
要好一些。 -
经过步骤6后,之后每次启动时
matlabrc.m
都会调用startup.m
这个脚本。如果你不小心删了startup.m
,那么启动MATLAB时会警告matlabrc.m
没有找到相应文件。这时只要在原路径下创建一个新的startup.m
即可。 -
事实上,借助
matlabrc.m
脚本,MATLAB会执行搜索路径下所有名为startup
的可执行文件,例如startup.m
,startup.mlx
.startup.mlapp
,这些后缀都是可以的,未必是.m
。同样也没对startup
的数量做限制,不过有一个也就够了。