今天我偶然发现了这个帖子:
http://www.mathworks.com/matlabcentral/newsreader/view_thread/112560
问题基本上是如何让Matlab读取你的startup.m文件,无论在哪里 你开始你的matlab会议。
提供的解决方案之一是:
一种解决方案是要求系统管理员添加几行 到“matlabrc.m”,在用户家中添加一些预先确定的文件夹 目录到MATLAB路径(比如〜/ .matlabstart)。然后每个用户都可以 在这个文件夹中有自己的“startup.m”文件。
我最终在我的系统(OS X)中做的是在:
中添加一个startup.m文件/Applications/MATLAB_R2011a.app/toolbox/local/
在这个startup.m文件中,我添加了:
if exist([getenv('HOME') '/.matlabrc/startup.m'])
run([getenv('HOME') '/.matlabrc/startup.m']);
end
这样用户可以选择创建隐藏文件夹~/.matlabrc
,在其中可以放置文件startup.m
。在这个启动文件中,无论他们启动Matlab的目录是什么,他们都可以告诉matlab什么时候执行它们。我添加到我自己的个人startup.m
文件的示例是
addpath(genpath('/Users/jmlopez/matlabcode/'))
现在我可以在该目录中添加任意数量的文件夹,并添加所有文件夹 每次我自动启动Matlab而不必修改路径时到路径。
问题是:Matlab是否已经提供了一个特殊的文件,就像我创建的那个或者我刚刚经历了所有这些麻烦来完成我想要的东西?如果答案是我给出的第二个选项,那么,Matlab为什么不提供这个?如果你没有管理员权限而且我不想将我的startup.m
文件带到我去的每个目录,那么在Matlab路径中添加目录就太麻烦了。有人可以对此有所了解吗?
答案 0 :(得分:6)
您可以将pathdef文件(存储您添加的所有路径)保存到自定义目录中。但问题是,当matlab启动时,它不会自动知道您在上一个会话中使用了哪个自定义目录。
但这就是MATLABPATH环境变量的用武之地。因为这允许自己设置matlab起始路径。在linux中,这可以通过在启动matlab之前设置此环境变量MATLABPATH来完成(从.bashrc /中的终端/ ...)
export MATLABPATH=$HOME/.matlab
通过这种方式,您可以让所有用户拥有自己的pathdef文件,从而解决了在启动时必须手动添加的问题。
我测试了是否将startup.m
添加到该MATLABPATH目录中,即:matlab是否运行该启动文件? ......确实如此。我认为它不适合你,因为在其他(更高优先级)目录(可能是matlabroot
)中有另一个startup.m文件,因此优先。我唯一的启动文件是在MATLABPATH中,所以只有一个选择。
不,我在matlabroot目录中添加了启动,但仍然在.matlab中我自己的启动文件运行。你确定在开始使用matlab之前正确设置了MATLABPATH吗?