使Matlab函数在任何目录下都可用。

3

我编写了一个Matlab函数,希望能够多次使用。目前,我是在使用之前将函数复制到适当的目录中。

这种方法的问题是很容易迷失在不同版本的函数中。基本上,我处于一种情况下,无法记住哪个版本包含哪些修改。

那么我的问题是,如何拥有一个单一版本的函数,可以从任何目录中使用?


3个回答

5

一种简单的方法是使用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之后,您需要再次添加路径。


1
最简单且最安全的方法,绝对不想将您的函数移动到各个地方并复制它们。 - GameOfThrows
那么,澄清一下,addpath函数是一次性使用的,当您重新启动Matlab时,必须再次添加路径才能使用它?还是addpath永久添加路径?谢谢。 - CiaranWelsh
没错,没错。我会把它加到答案里。 - hbaderts
3
我想补充一个我喜欢的组合:addpath(genpath('/my/path/')),它会将 my/path 下的所有文件夹添加到 Matlab 的路径中。这很方便,取决于您如何组织您的函数。 - brodoll
1
@brodoll非常好,我不知道这个。我已经将其添加到答案中。 - hbaderts

1
另一个快速的方法(如果您不想混乱您的Matlab路径,也假设您以前从未混乱过它)是将特定的.m文件简单保存到“MATLAB”文件夹中(这是默认Matlab路径中的第一个条目,并且当您打开程序时,Matlab开始的文件夹,再次使用默认设置)。
在Windows中,它位于 C:\users\your_user_name\Documents\MATLAB
Mac OS X 是 /Users/your_user_name.Documents/MATLAB。我从未在Linux上使用过matlab,但我非常确定它与OSX使用的路径相同。

0

一个快速的方法是首先在您的系统上创建一个目录,比如说mFunctions,在这个目录中,您可以包含您编写的函数的m文件(以及可能在不久的将来的其他文件),然后将目录mFunctions添加到Matlab PATH中。

每次启动Matlab时,都会访问PATH中的位置,并使m文件、Simulink模型等可用,就像您所期望的那样。

请查看此链接,了解如何执行此操作的Matlab文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接