【发布时间】:2019-06-12 19:18:01
【问题描述】:
findpeaks 函数有问题,该函数在信号处理工具箱中,而且程序还有另一个版本(用户定义函数)。我需要在信号处理工具箱中调用 on 而不是用户定义的工具箱,而且由于多种原因我无法重命名用户定义的函数。谁能帮我调用工具箱功能。
【问题讨论】:
-
只需重新排序 Matlab 路径,并确保您希望调用函数的特定工具箱在用户定义函数之前 。完成后,使用命令
which findpeaks仔细检查将调用哪一个。 -
另外:这正是 MATLAB 建议不要为用户定义的函数使用通用文件名的原因。打电话给他们,例如
my_findpeaks之类的,以防止这些问题 -
为了解决这些歧义,创建了 namespacing。我建议将该函数放入一个类中,然后您只能使用
classNameOrInstance.findpeaks()访问它。 -
@Hoki 这不是一个有用的响应,因为每次所需功能发生变化时都需要手动干预。事实上,这就是
R引入命名空间的原因,因此您可以指定您希望调用哪个版本的屏蔽函数。 -
@Adriaan 这就是我们在业务中所说的“kludgey workaround”——这是 mathworks 的错,不是你的错。
标签: matlab