我在带有原型(prototype)的matlab路径中的harmonic.m
文件中有一个函数:
function D = harmonic(A,B,C)
重要的是,
A
应该是double类型的矩阵。在版本r2014a中,显然MATLAB已创建了一个新的内置类方法
double.harmonic
。因此,当我调用函数时,我在错误的harmonic
中得到一个错误。我的harmonic
在路径列表中靠得很近没有帮助(which harmonic
揭示了我的路径),因为我的第一个输入是A
,而harmonic(A,B,C)
似乎等同于A.harmonic(B,C)
。有什么办法可以直接调用我的函数吗?要忽略此
double.harmonic
函数吗?我知道我可以从路径创建函数句柄,但这很讨厌。我正在寻找更优雅的解决方案或解决方法。最明显的是更改函数的名称,但随后我会被欺负:-(。 最佳答案
将您的harmonic
版本放入文件夹@double
中,并确保文件夹@double
在路径上的\toolbox\symbolic\symbolic\@double
上方(此新的double.harmonic
来自Symbolic Toolbox)。
这将迫使您的函数成为double
的方法,即它将成为double.harmonic
,而不是通用函数harmonic
。在确定要分派(dispatch)给哪个对象时,MATLAB将首先考虑方法,然后再考虑泛型函数。由于您的double.harmonic
和另一个都是这两种方法,而您的ojit_code在这条路上遥遥领先,因此您将获胜。 BAM-MATLAB,吃了!