MATLAB调试中如何跳过内置函数?

MATLAB调试中如何跳过内置函数?,matlab,debugging,Matlab,Debugging,当我为调试设置断点时,光标“穿透”函数angle,并检查相应的代码。如何强制光标只扫描我的代码? 奇怪的是,对于函数sum或abs 感谢为什么像abs和sum这样的命令会被自动跳过,这是因为它们是编译的、专有的MATLAB函数,实际上没有任何可读的MATLAB代码。如果您编辑('angle.m')(可能没有m,我忘了),您将看到代码(正如预期的那样)。现在对sum做同样的操作,您会注意到这里没有MATLAB代码,只有注释。MATLAB的核心函数,如sum,但也如clc和close,都是核心嵌入函

当我为调试设置断点时,光标“穿透”函数
angle
,并检查相应的代码。如何强制光标只扫描我的代码?
奇怪的是,对于函数
sum
abs


感谢

为什么像abs和sum这样的命令会被自动跳过,这是因为它们是编译的、专有的MATLAB函数,实际上没有任何可读的MATLAB代码。如果您编辑('angle.m')(可能没有m,我忘了),您将看到代码(正如预期的那样)。现在对sum做同样的操作,您会注意到这里没有MATLAB代码,只有注释。MATLAB的核心函数,如sum,但也如clc和close,都是核心嵌入函数,所以我们看不到代码

正如前面在注释中提到的,调试器有一些工具,允许您只需单步而不是单步执行,如果您是单步执行某个部分,则始终可以单步执行调用当前正在查看的部分的函数。此外,为了一次跳过几行代码,“运行到光标”可能非常有用


步骤
而不是
步骤
@丹,这不是一个很好的解决方案。有时,您需要进入使用这些文件的代码,即
MyClass(angle(H),param2)
@KronoS然后使用
退出
?@Dan再说一次,自动调试这些类/脚本是令人沮丧的。与其采取额外的“步骤”和必须找出我到底在哪里,而不是我认为我将在其中的文件,不如我们一起跳过这些。我自己不会使用它,但也许你可以通过编写一个“短截图”来一起破解一些东西在IDE中,首先进入中的code
dbstep。然后,它使用
dbstack
检查当前堆栈,如果当前函数位于
toolboxdir
中,您可以跳出:
dbstep out
fyi它们被称为
内置函数。您可以使用:
which-all-funcname
查看它是什么类型(
-all
参数返回所有重载版本。您可以更具体地使用:
哪一个和(1)
以这种方式MATLAB显示该特定语法的值)如果您只想区分
内置函数和M文件,该函数也很有用。例如,以下匿名函数可能有用
isbuiltin=@(s)exist(s,'builtin')==5
ismfile=@(s)存在,'file')==2。请注意,第二种方法不会检测到
mex
文件或p文件等,但
存在
其中也有
)也可以检查这些文件。