在MatlabⓇIDE中,有没有简单的方法可以跳转到特定方法的定义,而不知道它定义在哪个类中?
对于自包含功能,我可以输入edit funcname.m
。课程也一样。但是,特定类的超类层次结构可能很大。通过使用元类,我可以找到in what class a method was defined,然后打开该类,并浏览到适当的定义。这比自包含功能要多得多。
在交互式提示符下,是否有任何直接方式 跳转到特定方法的定义,或将断点放入这个方法(这样执行它会导致编辑器跳转到定义)?
答案 0 :(得分:3)
实际上,在MATLAB的IDE中,您可以在文件中的函数之间移动。 如果您想获取有关您在代码中调用的函数的更多信息,可以使用Open Selection( CTRL + D 与Windows键绑定)快速跳转到哪里该函数已定义。
点击此链接:MATLAB Spoken Here
如果您将光标移动到编辑器中的某个功能上,然后按ctrl + D,该功能将在编辑器中打开。对于类中的方法,您可以使用“转到”。如果该方法在本课程中定义。
答案 1 :(得分:3)
在给定特定输入参数时,您可以使用which
来定位函数。
比如说我们在路径上有以下文件:
>> which -all fun
C:\Users\Amro\Desktop\fun.m
C:\Users\Amro\Desktop\Klass.m % Klass method
classdef Klass < handle
methods
function fun(obj)
disp('hello from Klass')
end
end
end
function fun()
disp('hello from fun')
end
现在我们可以区分两者给出的参数:
>> o = Klass();
>> which('fun(o)')
C:\Users\Amro\Desktop\Klass.m % Klass method
>> which('fun')
C:\Users\Amro\Desktop\fun.m
请注意,在类方法的情况下,我们必须使用语法:fun(obj, args, ...)
而不是obj.fun(args, ...)
您可以使用matlab.desktop.editor
API打开指定函数的编辑器:
matlab.desktop.editor.openAndGoToFunction(which('Klass'),'fun');