Matlab调用其他文件夹下的函数

Matlab有一个毛病,就是默认只能调用同一文件夹下的函数,或者已经添加到工具箱的函数。
但是平常在写代码时,有一些自己写的函数是负责处理一类问题的,能不能像其它语言一样,用文件夹装起来,然后需要时,调用这个文件夹下的函数呢?
当然可以!你只需要在文件的第一行加入这句话:

addpath(genpath('.\lib'));

此时我的文件夹结构是这样的

  • main.m
  • lib
    • func1.m
    • func2.m

这样我们就可以在 main.m 中调用 func1func2 了。

当然,这样做了以后,文件夹路径就相当于永久添加到了matlab,如果后面不想用了(比如有时候,某些函数名相互冲突,需要去掉一个)。可用下面这段代码移除文件夹路径引用

rmpath(genpath('.\lib'));

如果你添加路径后,忘了使用以上代码进行删除,又删除了这个引入的代码文件,那么在下次打开matlab时,就会报出类似下面的警告:

警告: 名称不存在或不是目录: XXXX

此时,在命令行窗口输入:

edit pathdef.m

打开这个脚本文件,将会看到


p = [...
%%% BEGIN ENTRIES %%%
XXXX %你设置的路径
XXXX

]

这里存储了你曾经设置过的路径,将他们手动删除并保存就好了。

posted @ 2021-03-06 10:23  GShang  阅读(8067)  评论(0编辑  收藏  举报