我在带有原型的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
函数?我知道我可以从路径创建一个函数句柄,但那很讨厌。我正在寻找更优雅的解决方案或解决方法。最明显的是改变我的功能名称,但后来我会感到被欺负: - (。
答案 0 :(得分:2)
将您的harmonic
版本放入文件夹@double
,并确保您的文件夹@double
位于路径上\toolbox\symbolic\symbolic\@double
之上(此新double.harmonic
来自Symbolic Toolbox)。
这将强制您的函数成为double
的方法,即它将是double.harmonic
,而不是通用函数harmonic
。在决定分发哪个东西时,MATLAB将首先考虑方法,然后考虑通用函数。由于你的double.harmonic
和另一个都是方法,而你的方法在路上领先,你的将获胜。 BAM - 吃那个,MATLAB!