matlab有matlabrc文件吗?

matlab有matlabrc文件吗?,matlab,path,startup,rc,Matlab,Path,Startup,Rc,今天我偶然发现了这条线索: 问题基本上是如何让Matlab读取startup.m文件,而不管它在哪里 开始matlab会话 提供的解决方案之一是: 一种解决方案是要求系统管理员添加几行代码 添加到“matlabrc.m”,在用户的主页中添加一些预先确定的文件夹 MATLAB路径的目录(例如,~/.matlabstart)。然后每个用户都可以 在此文件夹中有自己的“startup.m”文件 我最终在我的系统(OS X)中添加了一个startup.m文件: /Applications/MATLAB

今天我偶然发现了这条线索:

问题基本上是如何让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路径是一件非常痛苦的事情。有人能解释一下吗?

您可以将pathdef文件(存储您添加的所有路径)保存到自定义目录中。但是问题是,当matlab启动时,它不会自动知道您在上一个会话中使用的自定义目录

但这就是MATLABPATH环境变量的作用。因为这允许您自己设置matlab起始路径。在linux中,只需在启动matlab之前设置环境变量MATLABPATH(从终端/在.bashrc/…)即可完成此操作

通过这种方式,您可以让所有用户都拥有自己的pathdef文件,从而解决了在启动时必须手动添加这些文件的问题

编辑 我测试了将
startup.m
添加到MATLABPATH目录是否有效,即:matlab是否运行该启动文件。。。确实如此。我认为它对您不起作用,因为在其他(更高优先级)目录(可能是
matlabroot
)中有另一个startup.m文件,所以它具有优先权。我唯一的启动文件在MATLABPATH中,因此只有一个选择

编辑2
不,我将startup添加到matlabroot目录,并且仍然运行.matlab中我自己的启动文件。您确定在启动MATLABPATH之前正确设置了MATLABPATH吗?

如果您要使用一些可能会冒犯他人的词语,请使用它们。如果你不想冒犯敏感人士,不要假装$$隐藏了你的屁股。我编辑了你的问题,让你有勇气相信我的信念。我看到了那个文件夹,但我找不到任何地方,上面写着你可以保存pathdef文件。在任何情况下,我都不想弄乱pathdef.m文件,因为这需要我显式地声明路径。我只是有一个startup.m文件,其中包含命令
addpath(genpath('path/to/directory'))
。这样,如果我修改目录的结构,我就不必担心将所有子目录添加到路径中。我可以把startup.m文件放在
$HOME/.matlab
中吗?我马上就要知道了,那没用。我知道MATLABPATH的事是因为。但这只适用于Mac/Linux,它没有提到我可以将我的
pathdef
文件放在那里。在任何情况下,目前我认为唯一可行的方法是让一个admin add that if语句,这样用户就可以定义他的startup.m并将他们喜欢的东西放在那里。我试着让它在
$HOME/.matlab
中的startup.m文件中显示“你好,jmlopez,你不知道我是个傻瓜”,但遗憾的是它没有显示出来。我测试了同样的东西,它确实对我有用。查看我的编辑^^^,这样看来Matlab在启动时会执行其路径中的每个
startup.m
文件。对吗?是的,它是这么说的,正如你所说,我确实向
MATLABPATH
添加了
$HOME/.matlab
,所以现在我有了
startup.m
文件,它就执行了它。这很有效,:)。现在,最后一个问题,这将如何应用于windows计算机?是否有可以在windows中修改的环境变量?无论如何,我会接受你的回答,因为你消除了我的困惑。它只会执行它在搜索路径上遇到的第一个脚本(就像你尝试使用matlab运行的任何其他脚本一样)!!对于windows,我们解释说,只需为matlab创建一个快捷方式即可。快捷方式所在的目录将是MATLABPATH。
export MATLABPATH=$HOME/.matlab