有时当我在路径中添加新文件时,我必须重新启动MATLAB,否则将无法检测到它。必须有另一种方法!
答案 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
无效