如何更新MATLAB路径?

时间:2009-09-17 09:17:20

标签: path matlab

有时当我在路径中添加新文件时,我必须重新启动MATLAB,否则将无法检测到它。必须有另一种方法!

5 个答案:

答案 0 :(得分:8)

我遇到过类似的问题(当我更改文件时,Matlab没有注意到它)。不幸的是,我不知道是什么导致它或如何解决它。我经常发现CLEAR ALL解决了这个问题,但要注意它会清除工作空间中的所有变量。一些'REHASH'命令(例如,REHASH TOOLBOXRESET)也可能是有用的。

我希望看到更好的答案;我遇到的所有文档似乎表明这不会发生。

答案 1 :(得分:3)

也许这是Matlab在启动时缓存某些文件以提高性能的问题。这发生在某些目录中的文件中。

从matlab帮助获取路径命令:

  

注意(...)另请注意,在每个MATLAB会话开始时,matlabroot / toolbox目录树中的文件位置都会加载并缓存在内存中,以提高性能。如果使用外部编辑器将文件保存到matlabroot / toolbox目录,或者使用文件系统操作在这些目录中添加或删除文件,请在使用当前会话中的文件之前运行rehash toolbox。如果使用外部编辑器更改matlabroot / toolbox目录中的现有文件,请在使用当前会话中的文件之前运行clear functionname。有关更多信息,请参阅MATLAB桌面工具和开发环境文档中的rehash参考页面或工具箱路径缓存主题

答案 2 :(得分:2)

我经常看到网络文件位置会发生这种情况。我不明白机制,但肯定会发生。经常有效的解决方案:

path(path);

或者,如果无法提取,请尝试:(注意,这将清除您的工作区)

clear classes;
path(path);

我们最后一次这样做了,我们把它放在我们公共代码路径上的脚本中:

shazaam;

是的,我的年龄正在显现。

答案 3 :(得分:2)

您需要“rehash”功能,或者需要使用“path(path)”或类似功能再次设置路径。这还取决于你是否使用“冻结”路径。看看ADDPATH的帮助。

MATLAB将保留已编译的M文件的缓存副本,除非它知道您已更改它。如果你已经创建了文件或者你已经在MATLAB之外编辑了它,那么它可能不知道它已经被改变了。

答案 4 :(得分:0)

当网络驱动器连接丢失然后恢复时,会发生这种情况。 rehash无效,rehash toolboxreset无效