Main Content

调试时检验值

自 R2021b 开始提供。取代调试时检查值 (R2021a)。

调试代码文件时,可以在暂停 MATLAB® 时查看工作区中当前任何变量的值。如果您要确定一行代码是否产生预期的结果,检查值是很有用的做法。如果结果符合预期,您可以继续运行代码或步进到下一行。如果结果不符合预期,则该行或上一行可能包含错误。

查看变量值

在调试时有多种方法可查看变量的值:

  • 工作区浏览器 - 工作区浏览器在当前工作区中显示所有变量。工作区浏览器的列中显示变量的当前值。

    Workspace browser showing two variables, n and x, with the current value for each variable displayed in the Value column

    要查看更多详细信息,请双击该变量。变量编辑器随即打开,并显示该变量的内容。您也可以使用 openvar 函数在变量编辑器中打开变量。

  • 编辑器和实时编辑器 - 要在编辑器和实时编辑器中查看变量值,请将光标放在变量上。该变量的当前值将显示在数据提示中。数据提示会一直在视图中,直到您移动光标。如果在显示数据提示时遇到问题,请点击包含该变量的行,然后将指针移至靠近该变量。

    Script with a data tip showing the value of the variable n

    在编辑器中调试时始终启用数据提示。要在实时编辑器中禁用数据提示或在编辑器中编辑文件时禁用数据提示,请转至视图选项卡,然后点击 数据提示按钮以将其关闭。

    您也可以查看变量或方程的值,方法是在编辑器和实时编辑器中选择它,右键点击,然后选择在命令行窗口中执行所选内容。MATLAB 会在命令行窗口中显示变量或方程的值。

    注意

    您不能在 MATLAB 忙碌时(例如在运行文件时)执行所选内容。

  • 命令行窗口 - 要在命令行窗口中查看变量的值,请键入变量名称。例如,要查看变量 n 的值,请键入 n,然后按 Enter。命令行窗口会显示变量名及其值。要查看当前工作区中的所有变量,请调用 who 函数。

查看当前工作区之外的变量值

当您调试函数或步入被调函数或文件时,MATLAB 会显示在当前行暂停之前已执行的函数的列表。该列表也称为函数调用堆栈,它显示在编辑器或实时编辑器中文件的顶部。该列表按顺序显示各函数,最左侧是第一个调用的脚本或函数,最右侧是 MATLAB 暂停处的当前脚本或函数。

Function call stack for plotRand showing plotRand as the first called script and mean as the current function

您也可以使用 dbstack 函数在命令行窗口中查看当前工作区:

dbstack
> In mean (line 48)
In plotRand (line 5)

对于函数调用堆栈中的每个函数,都有一个相应的工作区。工作区包含您在 MATLAB 中创建的变量或从数据文件或其他程序导入的变量。通过命令行窗口分配或使用脚本创建的变量属于基础工作区。在函数中创建的变量属于其自己的函数工作区。

要检查当前工作区之外的变量值,请选择不同工作区。在编辑器或实时编辑器中,从文件顶部函数调用堆栈右侧的下拉列表中选择工作区。

Function call stack with the drop-down list of workspaces for the plotRand script open

您也可以在命令行窗口中使用 dbupdbdown 函数来选择函数调用堆栈中的上一个或下一个工作区。要列出当前工作区中的变量,请使用 whowhos

如果 MATLAB 正在一个工作区中覆盖某个变量的值,而此时您尝试在另一个工作区中查看该变量的值,则 MATLAB 会在命令行窗口中显示错误。

K>> x
Variable "x" is inaccessible. When a variable appears on both sides of an assignment
statement, the variable may become temporarily unavailable during processing. 
无论您是使用函数调用堆栈右侧的下拉列表还是 dbup 命令来选择工作区,都会发生该错误。

相关主题