matlab - Vaya a la definición del método independientemente de la clase en la que esté definido
figure title matlab (2)
De hecho, en el IDE de MATLAB, puede moverse entre funciones dentro de un archivo. Si desea obtener más información sobre una función a la que está llamando en su código , puede usar Abrir selección ( CTRL + D con combinaciones de teclas de Windows) para saltar rápidamente a donde se define la función.
Ver este enlace: MATLAB hablado aquí
si mueve el cursor sobre una función en el editor y luego presiona ctrl + D la función se abrirá en el editor. para los métodos dentro de una clase puede usar ''Ir a''. Si el método está definido en la clase presente.
En el IDE de Matlab, ¿hay alguna manera fácil de saltar a la definición de un método particular, sin saber en qué clase se define?
Para funciones autónomas, puedo escribir edit funcname.m
. Lo mismo para las clases. Sin embargo, la jerarquía de las superclases para una clase particular puede ser grande. Al usar metaclases, puedo averiguar en qué clase se definió un método , luego abrir la clase y buscar la definición adecuada. Esto es mucho más trabajo que para funciones autónomas.
Desde la solicitud interactiva, ¿hay alguna manera directa de saltar a la definición de un método particular o poner un punto de interrupción en este método (de modo que ejecutarlo hará que el editor salte a la definición)?
Puede usar para localizar una función cuando se le den argumentos de entrada específicos.
Digamos por ejemplo que tenemos los siguientes archivos en la ruta:
>> which -all fun
C:/Users/Amro/Desktop/fun.m
C:/Users/Amro/Desktop/Klass.m % Klass method
Klass.m
classdef Klass < handle
methods
function fun(obj)
disp(''hello from Klass'')
end
end
end
fun.m
function fun()
disp(''hello from fun'')
end
Ahora podemos diferenciar entre los dos dados los argumentos que toman:
>> o = Klass();
>> which(''fun(o)'')
C:/Users/Amro/Desktop/Klass.m % Klass method
>> which(''fun'')
C:/Users/Amro/Desktop/fun.m
Tenga en cuenta que en el caso del método de clase, tenemos que usar la sintaxis: fun(obj, args, ...)
en oposición a obj.fun(args, ...)
Puede abrir el editor para la función especificada utilizando la API matlab.desktop.editor
:
matlab.desktop.editor.openAndGoToFunction(which(''Klass''),''fun'');