【发布时间】:2011-09-18 12:31:19
【问题描述】:
如here 所述,我创建了自己的figure.m,它很好地重载了内置的figure 命令。现在,每当我启动 MATLAB 时,都会收到警告
警告:函数 C:\somepath\figure.m 有 与 MATLAB 内置函数同名。我们 建议您将函数重命名为 避免潜在的名称冲突。
鉴于在我的情况下这是所需的行为,有什么方法可以取消激活此警告?
你可能会说我应该以不同的方式调用我的函数而不是重载,但我确实觉得对于我的开发系统来说,这种重载是正确的方法......
更新
正如 Aabaz 所述,您可以使用全局关闭此警告
warning off MATLAB:dispatcher:nameConflict
需要在matlabrc.m的开头(在设置路径之前)。但是,我仍然对可以特别删除此错误消息以重载 figure.m(或某些自定义函数列表)而不是所有函数的解决方案感兴趣。我想我在这里问得太多了;-)?
【问题讨论】:
-
另外,您可以在
C:\somepath\private中隐藏figure的实现,这使其仅对somepath中的函数可见。因此,当您处理位于someotherpath上的不同项目时,您可以避免名称冲突和潜在的意外行为。 -
@Jonas 很有趣,我试试看!我必须将它添加到少数不同的路径中,但这对我来说确实是一个不错的选择。
-
MATLAB 应该更好地设计我们组织路径/范围并实现某种命名空间或模块(类似于其他语言提供的)......也就是说,MATLAB 确实具有“包”功能,但它似乎是事后才添加的,以克服命名空间冲突的问题。 mathworks.com/help/techdoc/matlab_oop/brfynt_-1.html 存在其他控制范围的机制,例如:私有函数、嵌套函数和子函数。查看这个相关问题:stackoverflow.com/q/2748302
标签: matlab suppress-warnings overloading