【问题标题】:Make a Matlab function available from any directory.使 Matlab 函数可从任何目录使用。
【发布时间】:2016-01-14 03:04:11
【问题描述】:

我编写了一个希望多次使用的 Matlab 函数。为此,目前我正在将该函数复制到适当的目录中,然后再使用。

这种方法的问题是在不同版本的函数中太容易迷路了。基本上,我处于不记得哪个版本包含哪些修改的情况。

所以我的问题是,我怎样才能拥有可以从任何目录使用的单一版本的函数?

【问题讨论】:

标签: matlab


【解决方案1】:

一个简单的方法是将包含这个函数的文件夹添加到搜索路径中,使用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 永久添加路径?谢谢
  • 是的,完全正确。我会将其添加到答案中。
  • 我只想添加一个我喜欢的组合:addpath(genpath('/my/path/')),它将 my/path 下的所有文件夹添加到 Matlab 的路径中。它是否方便取决于您如何组织功能
  • @brodoll 非常好,我不知道。我将此添加到答案中。
【解决方案2】:

另一种快速方法(如果您不想弄乱您的 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 使用的路径相同

【讨论】:

    【解决方案3】:

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

    每次启动 Matlab 时,都会访问 PATH 中的位置,并按照您希望的方式提供 m 文件、simulink 模型等。

    查看this link 获取有关如何执行此操作的 Matlab 文档。

    【讨论】:

      猜你喜欢
      • 2017-01-14
      • 1970-01-01
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多