我编写了一个Matlab函数,希望能够多次使用。目前,我是在使用之前将函数复制到适当的目录中。
这种方法的问题是很容易迷失在不同版本的函数中。基本上,我处于一种情况下,无法记住哪个版本包含哪些修改。
那么我的问题是,如何拥有一个单一版本的函数,可以从任何目录中使用?
我编写了一个Matlab函数,希望能够多次使用。目前,我是在使用之前将函数复制到适当的目录中。
这种方法的问题是很容易迷失在不同版本的函数中。基本上,我处于一种情况下,无法记住哪个版本包含哪些修改。
那么我的问题是,如何拥有一个单一版本的函数,可以从任何目录中使用?
一种简单的方法是使用addpath
将包含此函数的文件夹添加到搜索路径中:
addpath('../a/relative/path')
addpath('/An/absolute/path/on/linux')
addpath('C:/an/absolute/path/on/windows')
正如@brodoll在评论中建议的那样,genpath
函数可以创建所有子文件夹的列表,非常有用,这样不仅会添加指定文件夹,还会添加所有子文件夹到路径中:
addpath(genpath('path/to/the/folder'))
您可以在使用此函数的每个脚本开始时调用它。
注意:这将为当前MATLAB会话的搜索路径添加此文件夹。因此,如果您运行一个脚本两次,您只需要第一次添加路径。但是,在重新启动MATLAB之后,您需要再次添加路径。
addpath
函数是一次性使用的,当您重新启动Matlab时,必须再次添加路径才能使用它?还是addpath
永久添加路径?谢谢。 - CiaranWelshaddpath(genpath('/my/path/'))
,它会将 my/path 下的所有文件夹添加到 Matlab 的路径中。这很方便,取决于您如何组织您的函数。 - brodollC:\users\your_user_name\Documents\MATLAB
。/Users/your_user_name.Documents/MATLAB
。我从未在Linux上使用过matlab,但我非常确定它与OSX使用的路径相同。一个快速的方法是首先在您的系统上创建一个目录,比如说mFunctions
,在这个目录中,您可以包含您编写的函数的m文件(以及可能在不久的将来的其他文件),然后将目录mFunctions
添加到Matlab PATH中。
每次启动Matlab时,都会访问PATH中的位置,并使m文件、Simulink模型等可用,就像您所期望的那样。
请查看此链接,了解如何执行此操作的Matlab文档。
Access m-files in a subfolder without permanently adding it to the path
。 - Divakar