【问题标题】:How do I wrap a Matlab library without polluting my path variable?如何在不污染路径变量的情况下包装 Matlab 库?
【发布时间】:2015-06-20 15:13:52
【问题描述】:

让我们假设,我想使用一个结构如下的外部 Matlab 库:

folderName
  play.m
  run.m
  open.m

如果我只是将folderName 添加到我的 Matlab 路径变量中,它很容易产生名称冲突。我不想重命名文件,以便能够获得示例库的新版本(示例库中没有使用包的概念)。如果从一个库函数调用另一个库函数,重命名也需要修改代码。

如何编写本地包装器,用于包装该示例库中的函数?然后我的包装器可以有我想要的名称和输入参数。

澄清:如何在不发生名称冲突、不重命名和不修改每个函数的情况下使用外部库(工具箱)?

  • 重命名文件:使更新外部库变得困难。
  • 只需将它们放在一个包文件夹中:这将中断内部库函数调用。

【问题讨论】:

  • 库只是一个文件夹(可能带有私人文件夹)还是包含多个源文件夹?
  • 让我们假设,该库包含几个文件夹。

标签: matlab


【解决方案1】:

你想使用一个包,它会建立一个命名空间,这样包中的东西就会被包名限定。你可以在这里找到更多信息:http://www.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html

【讨论】:

  • 你能解释一下如何在不修改库的情况下做到这一点吗?如果您将其放入包中,则对库的其他函数的每个引用都必须包含包名。
  • 我认为@Daniel 是对的。这将导致我们通过添加前缀来修改库函数对其他库函数的每次调用。
猜你喜欢
  • 2019-08-06
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 2016-01-30
  • 1970-01-01
相关资源
最近更新 更多