我遇到了问题findpeaks
函数,该函数位于信号处理工具箱中,并且该程序还有它的另一个版本(用户定义函数)。我需要调用信号处理工具箱中的 on 而不是用户定义的函数,而且由于多种原因我无法重命名用户定义的函数。谁能帮我调用工具箱函数。
MATLAB 使用的优先顺序在其描述帮助页面。它指出当前文件夹 (9.) 中的函数优先于路径 (10.) 中其他位置的函数。然后,选择该函数在路径中的第一次出现。这允许多种可能的解决方案:
1. cd
到文件夹
一个非常简单的方法就是将当前工作空间目录更改为您需要调用的函数的文件夹,即cd
到您的用户定义函数所在的位置,或者cd
到工具箱路径。Note:这是相当不优雅的,但有时可能是最简单的解决方案。
2. 重新排序路径
如前所述,MATLAB 选择该函数在路径中第一次出现的位置。因此,您可以对路径变量重新排序,以便用户定义函数所在的文件夹显示在最后。可以使用以下命令查看和操作路径变量path功能。Note:那么就只能调用工具箱函数了。否则你就必须再次走上这条路。
3. 功能手柄
如果您需要能够调用这两个函数,那么为两个版本创建函数句柄可能会很有用。为此,你必须cd
进入定义函数的文件夹并在那里创建一个新句柄:
cd('path/to/userdefined/function')
userFindPeaks = @findpeaks;
cd('path/to/MATLAB/installation/toolbox/signal/signal')
toolboxFindPeaks = @findpeaks;
然后您可以使用调用函数feval.
当然,正如阿德里安在评论中提到的,最好not将已定义的函数名称用于您自己的函数或变量名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)