这个文件明明在当前文件夹,或者按指示更改当前文件夹了,但是还是报错。重启MATLAB好像也没用。另外,这种情况在你添加MATLAB函数库路径也会出现。甚至,在你刚刚复制一个m文件重新命名,也可能会出现这个问题。这几个问题其实都是同一类问题,解决方法可以参考下文。
文章目录
类似问题问题原因解决办法方法一方法二 (旧方法)
参考资料
类似问题
file is not found in the current folder or on the MATLAB path
, but exists in somewhere
else
Unrecognized function or variable
'batch_Dave'.
Previously accessible file is now inaccessible
问题原因
首先你要了解到,MATLAB的函数和文件系统路径都是存在一个叫Toolbox path cache的存储器里面。可能是为了程序效率,它所存储的一些文件路径会长时间存在,即使你把原文件删除或移动,比如前面说的同名文件的移动。 所以,当这些文件位置发生改变后,你再次尝试调用这个函数,MATLAB仍然按照旧的cache里面的路径去找这个函数,结果找不到,就报错了。 可以用下面指令看旧的路径位置:
which your_function_name
所以,我们可以通过手动更新Toolbox path cache来刷新.m文件的路径。
解决办法
方法一
命令窗口输入下面代码,然后回车。
rehash toolboxcache
或者在设置中更新。
方法二 (旧方法)
先更改该.m文件为其他名字,运行没问题再该回去。
参考资料
rehash Toolbox Path Caching in MATLAB