在 MatlabⓇ IDE 中,是否有任何简单的方法可以跳转到特定方法的定义,而不知道它是在哪个类中定义的?
对于自包含功能,我可以键入edit funcname.m
. 上课也是一样。但是,特定类的超类层次结构可能很大。通过使用元类,我可以找出方法是在哪个类中定义的,然后打开该类并浏览到适当的定义。这比独立功能要多得多。
从交互式提示中,是否有任何直接的方法可以跳转到特定方法的定义,或者在该方法中放置断点(这样执行它会导致编辑器跳转到定义)?
在 MatlabⓇ IDE 中,是否有任何简单的方法可以跳转到特定方法的定义,而不知道它是在哪个类中定义的?
对于自包含功能,我可以键入edit funcname.m
. 上课也是一样。但是,特定类的超类层次结构可能很大。通过使用元类,我可以找出方法是在哪个类中定义的,然后打开该类并浏览到适当的定义。这比独立功能要多得多。
从交互式提示中,是否有任何直接的方法可以跳转到特定方法的定义,或者在该方法中放置断点(这样执行它会导致编辑器跳转到定义)?
实际上,在 MATLAB 的 IDE 中,您可以在文件中的函数之间移动。 如果您想获取有关您在代码中调用的函数的更多信息,可以使用打开选择(带有 Windows 键绑定的CTRL+D)快速跳转到定义函数的位置。
检查此链接:MATLAB Spoken Here
如果您将光标移动到编辑器中的某个函数上,然后按 ctrl+D,该函数将在编辑器中打开。对于类中的方法,您可以使用“转到”。如果方法是在当前类中定义的。
当给定特定的输入参数时,您可以使用它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');