完美解决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文件为其他名字,运行没问题再该回去。
在这里插入图片描述
在这里插入图片描述

参考资料

rehash
Toolbox Path Caching in MATLAB

posted @ 2020-09-04 11:56  狂小虎  阅读(643)  评论(0编辑  收藏  举报