如何解决内部函数命名冲突?

时间:2014-08-03 18:59:28

标签: matlab

我一直在网上搜索这个问题的答案(当然包括这个我无法找到满意解决方案的网站)。我的问题是类AddParameter中的inputParser函数与包mbc下的Matlab工具箱函数AddParameter中的函数cgoptimoptions冲突:

其中addParameter E:\ study \编译器\ MATLAB \ R2012a \ toolbox \ mbc \ mbcdata \ @cgoptimoptions \ addParameter.m%cgoptimoptions方法

你知道吗我一直在谨慎使用自己代码的命名策略。但这一次似乎是两个内部函数之间的命名冲突(我称之为内部函数,因为我假设inputParser的AddParameter是内置的,而工具箱中的那个也是由Mathworks发布的,作为IDE工具包,所以也有点“官方”)。

通过查看其他人的函数优先级和帖子,我知道我可以做两件事来修复它:更改名称或操纵路径。好吧,我不喜欢它们中的任何一个,因为第一个会搞乱MathWorks明显偏好的整个命名策略,而第二个并不能解决问题,如果在某些时候我确实需要同时使用它们。

那么请你给我一些关于如何系统地避免这类问题的提示?这对我来说非常令人沮丧。

1 个答案:

答案 0 :(得分:1)

而不是:

addParameter(p, 'normalize', normalize);

使用:

p.addParameter('normalize', normalize);

但看起来addParameter不属于班级inputParser。使用它来查找要使用的方法:

methods(p)

inputParser似乎包含方法addParamValue,但不包括addParameter