5

在 MatlabⓇ IDE 中,是否有任何简单的方法可以跳转到特定方法的定义,而不知道它是在哪个类中定义的?

对于自包含功能,我可以键入edit funcname.m. 上课也是一样。但是,特定类的超类层次结构可能很大。通过使用元类,我可以找出方法是在哪个类中定义的,然后打开该类并浏览到适当的定义。这比独立功能要多得多。

从交互式提示中,是否有任何直接的方法可以跳转到特定方法的定义,或者在该方法中放置断点(这样执行它会导致编辑器跳转到定义)?

4

2 回答 2

6

实际上,在 MATLAB 的 IDE 中,您可以在文件中的函数之间移动。 如果您想获取有关您在代码中调用的函数的更多信息,可以使用打开选择(带有 Windows 键绑定的CTRL+D)快速跳转到定义函数的位置。

检查此链接:MATLAB Spoken Here

如果您将光标移动到编辑器中的某个函数上,然后按 ctrl+D,该函数将在编辑器中打开。对于类中的方法,您可以使用“转到”。如果方法是在当前类中定义的。

于 2013-08-16T18:00:37.853 回答
4

当给定特定的输入参数时,您可以使用它which来定位函数。

例如,我们在路径上有以下文件:

>> which -all fun
C:\Users\Amro\Desktop\fun.m
C:\Users\Amro\Desktop\Klass.m    % Klass method

类.m

classdef Klass < handle
    methods
        function fun(obj)
            disp('hello from Klass')
        end
    end
end

乐趣.m

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');
于 2013-08-16T20:19:05.850 回答