完美解决MATLAB确定存在的.m文件调用显示不存在?&& file is not found in the current folder
这个文件明明在当前文件夹,或者按指示更改当前文件夹了,但是还是报错。重启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文件为其他名字,运行没问题再该回去。