Path 如何更新MATLAB路径?

Path 如何更新MATLAB路径?,path,matlab,Path,Matlab,有时,当我向路径中添加新文件时,我必须重新启动MATLAB,否则将无法检测到它。一定还有别的办法 我也遇到过类似的问题(当我更改文件时,Matlab不会注意到)。不幸的是,我不知道是什么原因造成的,也不知道如何解决。我通常发现CLEAR ALL解决了问题,但要注意它会清除工作空间中的所有变量。某些“重新设置”命令(例如,重新设置TOOLBOXRESET)也可能有用 我希望看到更好的答案;我遇到的所有文档似乎都表明这不可能发生。也许这是Matlab在启动时缓存某些文件以提高性能的问题。这种情况发生

有时,当我向路径中添加新文件时,我必须重新启动MATLAB,否则将无法检测到它。一定还有别的办法

我也遇到过类似的问题(当我更改文件时,Matlab不会注意到)。不幸的是,我不知道是什么原因造成的,也不知道如何解决。我通常发现
CLEAR ALL
解决了问题,但要注意它会清除工作空间中的所有变量。某些“重新设置”命令(例如,
重新设置TOOLBOXRESET
)也可能有用


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

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

来自路径命令的Matlab帮助:

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


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

path(path);
或者,如果没有成功,试试这个:(注意,这会清除你的工作区)

我们做了很多最后一个,我们把它放在脚本中,放在我们的公共代码路径上,称为:

shazaam;
是的,我的年龄正在显示。

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


MATLAB将保留已编译M文件的缓存副本,除非它知道您已对其进行了更改。如果您创建了该文件或在MATLAB外部编辑了该文件,则它可能不知道该文件已更改。

当网络驱动器连接丢失然后恢复时,我会遇到这种情况
rehash
不起作用,但
rehash toolboxreset
是否起作用

您使用的是什么文件系统?Matlab依赖文件系统的更改跟踪,在发生更改时通知它。如果文件不在Matlab/toolbox目录下,则rehash或rehash('path')就足够了,这是文档中所说的。但是,我记得once REHASH不起作用,而REHASH TOOLBOXRESET起作用,即使文件不在工具箱目录中。这很可能是巧合,但因为我一直使用后一个选项,因为成本似乎非常小(两个命令都会立即返回)。
shazaam;